-
Fototrend
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Vladi
nagyúr
Nos még dolgozom a projektemen.
Ott tartok, hogy a hardver kész, leteszteltem, működik. Beépítettem a végleges dobozába, még mindig működik.Kóddal bajlódtam mostanában, mindjárt mutatom mire jutottam. A feladat ugye az, hogy ketyeg egy számláló, mondjuk 20 másodperre állítva. Ha letelik az idő, akkor csinál egy kapcoslást egy relén. 100 ms-bekapcs, majd ki.
De van 2 gomb, az egyik azonnal kapcsol, majd nullázza a számlálót és kezdi elölről.
A másik gomb amíg nyomva van, addig pausálja a folyamatot.Kérdéseim:
- megszíktást használok külsőt a két gombra. Az jó -e ide? Mert más módon nem tudtam kitalálni a megoldást.
- a nyissz megszakításba kellene még egy számláló nullázás. Meg a delay helyett egy módszer. Mert úgy tudom megszakítás alatt nem használható.const int piros = 3; //3-es pinbe dugva az azonnali vágó kapcsoló
volatile const int mikro = 2; //2-as pinbe van a hurka csináló gomb.é
volatile int alapled = 13;
volatile const int rele = 6; // a kapcsoló relé.
const long vido = 19890; // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
long previousMillis = 0;
void setup() {
pinMode(piros, INPUT); // a 10-es piros az bemenet lett
pinMode(mikro, INPUT); // a nyócas hurkázó is bemenet
pinMode(alapled, OUTPUT);
pinMode(rele, OUTPUT); // relé a 6-on kimenet
Serial.begin(9600);
attachInterrupt(0, fuggo, LOW);
attachInterrupt(1, nyissz, CHANGE);
}
void loop(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= vido) {
previousMillis = currentMillis;
}// ??? e meg itt valahogy nem jó, át kell írni az időzítést és be kell gyűni az utána jövő kódot a blokkba.
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");
}
void fuggo(){
while (digitalRead(mikro) == LOW)
digitalWrite(alapled, HIGH);
}
void nyissz(){
digitalWrite(rele, HIGH);
delayMicroseconds(100000);// e lehet nem is jó :(
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");
//??? itt még nullázni kellene
}
Új hozzászólás Aktív témák
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook Laptop 14" -80% i7-10610U 16/512 FHD IPS MATT
- Eladó Lian Li O11D MINI-X gépház
- Lenovo ThinkPad P17 Tervező Vágó Laptop -50% 17,3" i7-10750H 32/512 QUADRO T1000 4GB
- FSP DAGGER PRO ATX3.0(PCIe5.0) 850W Sfx tápegység
- Eladó PNY GeForce RTX 4070 Ti SUPER 16GB OC XLR8
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 4070 Ti Super GAMER PC termékbeszámítással
- Xiaomi Redmi Note 13 256GB, Kártyafüggetlen, 1 Év Garanciával
- 137 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- Lenovo ThinkCentre M720q/ Dell OptiPlex 3060- 3070/ Hp EliteDesk 800 mini, micro PC-Számla/garancia
- MacBook felvásárlás!! MacBook, MacBook Air, MacBook Pro
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest