Hirdetés
- OLED TV topic
- Karácsonyi ajándék ajánló gyerekeknek
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Soundbar, soundplate, hangprojektor
- Milyen CPU léghűtést vegyek?
- SSD kibeszélő
- Ha a koreaiakon múlik, még évekig ingünk-gatyánk rámehet a memóriákra
- A fával keres kapcsolatot a Gigabyte új alaplapja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen RAM-ot vegyek?
-
PROHARDVER!
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
- Eladó egy Sony HT-DDW750 5.1 házimozi rendszer megbizható, hibáktól mentes állapotban + Pio S-11A-P
- Megvigyázott ASUS TUF RTX 3070 OC, dobozzal, garival
- Szép, dobozos MSI PRO Z790-S WIFI PCIe gen5 garival
- Dobozos Aorus B650 AORUS ELITE AX V2, újszerű, garanciával
- Dobozos új MSI B650 GAMING PLUS WIFI 6E antennával, io shielddel, garanciával
- Vállalom FRP Lock os telefonok javítását ingyen kiszálással és akár helyszíni javittással
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4076, 100% Akkumulátor
- HIBÁTLAN iPhone SE 2020 64GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4001, 100% Akkumulátor
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600X / RX 7600 / 32GB DDR4 / 1TB M.2 SSD
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


ekkold

