Hirdetés
- GoodSpeed: Márkaváltás sok-sok év után
- V.Milán: Lapdiffúzor nyomáseloszlása: gondoltad volna?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Elektromos rásegítésű kerékpárok
- GoodSpeed: 3I/Atlas: Üstökös vagy idegen civilizáció űrhajója?
- Meggyi001: Több tucat Eiffel torony??? Igen, gyere, mutatom, hogy hol...
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
-
LOGOUT
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
-
Teasüti
nagyúr
Unatkoztam, remélem nem haragszol meg érte ha esetleg ez volna a megoldás!

Nem igazán emlékszem a kapcsolási rajzodra, de a bemenetek alapból Vcc-re vannak húzva és GND-re kapcsolsz, ugye? Meg hardveres prell mentesítést használsz, ugye? Mielőtt interrupt özön keletkezik egy gombnyomásra.
Hosszú idő után ez az első programom, így lehetnek benne hibák. Pár dolgot ki kellett keresnem, mert nem emlékeztem rá.
Arra figyelj, hogy szünet után azonnal nyissz lesz, ha lejárt a ciklusidő!#define vido 19890 // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
unsigned long currentMillis, previousMillis;
bool piros;
void nyissz() {
piros = true;
}
void setup() {
pinMode(3, INPUT); //piros
pinMode(2, INPUT); //mikro
pinMode(13, OUTPUT); //led
pinMode(6, OUTPUT); //relé
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), nyissz, LOW);
}
void loop() {
currentMillis = millis();
if (currentMillis - previousMillis >= vido || piros) {
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
Serial.println("Vágtam, kövi.");
previousMillis = currentMillis;
piros = false;
}
if (digitalRead(2) == LOW) {
while (digitalRead(2) == LOW);
}
} -
Tankblock
aktív tag
Hello,
Szerintem koncepcionálisan van elbökve a kód.
interruptba nem illik/ szabad kiíratást rakni.
Az interrupt kódjának illik minimálisnak lennie ha lehetne késedelm delay nélkül.....Ha az időt (previousMillis ha jól látom )kiteszed volatile unsigned longba, akkor millis fv segítségével aktualizálhatod.
Én a logikát a loopba raknám és a Interruptokba csak flageket állítanék és állapotgépeket pörgetnék a loopba, megfelelő feltételek melett, és a delay-t helyett for időkülönbséget néznék az állapogépben.....
De ez én vagyok, remélem más ad jobb tanácsokat.
Új hozzászólás Aktív témák
- T14 Gen1 27% 14" FHD IPS Ryzen 5 PRO 4650U 16GB 512GB NVMe ujjlolv IR kam gar
- ÚJ MSI CYBORG 15 A13VF - 15.6"FHD 144Hz - i7-13620H - 16GB - 512GB - Win11 - RTX 4060 -3 év garancia
- GAMER PC! i7-12700KF / RTX 3060 Ti / Z690 / 16GB 3200MHz / Z690 / 1TB NVMe / 700w!
- Ryzen 5 3600X Komplett PC 32GB RAM, 1.5TB NVMe SSD, Vízhűtés
- Latitude 5440 27% 14" FHD IPS i7-1365U 16GB 512GB NVMe magyar vbill ujjolv IR kam gar
- Xiaomi 13T Dobozzal Töltővel
- BESZÁMÍTÁS! 64GB (2x32) Samsung 3200MHz DDR4 memória garanciával hibátlan működéssel
- BESZÁMÍTÁS! MSI H310M i5 9400F 16GB DDR4 240GB SSD 2TB HDD RTX 2060 6GB THERMALTAKE VERSAH17 600W
- AKCIÓ! LG UltraFine 27" 5K IPS 99% DCI-P3 1 év garancia
- GYÖNYÖRŰ iPhone 12 mini 256GB Black-1 ÉV GARANCIA -Kártyafüggetlen, MS3626, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


ekkold
