-
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
válasz
Janos250
#6417
üzenetére
Én is erre jutottam. Mindjárt mutatom a végleges kódomat. Közben találtam button libet is, meg ha már ott voltam relé libet.
Nekem valahogy csak libekkel megy a program megírása. A kóddal kapcsolatos kérdéseim:1. Ez így nem lesz lassú? vagy itt nem is tud?
2. Amikor lejár az időzítő megvárja a feladat végrehajtását és csak akkor indul tovább?
3. A loop rész jól van összerakva? Kapcsos zárójelezés főleg.
4. ez így kb. azt csinálja amit szeretnék, vagy szar az egész és inkább menjek kapálni?Egyébként az idében lefordul, nem jelez hibát. Kipróbálni csak akkor tudom, ha az utolsó alkatrészek is megérkeznek.
#include "TimerObject.h"
#include <Button.h>
#include "Relay.h"
TimerObject *szamlalo = new TimerObject(20000); // a fő számláló
TimerObject *kapcs = new TimerObject(500);//második számláló, mivel delay-t nem lehet használni
Button pause = Button(8, LOW);//itt külön kell definiálni, elnevezni és beállítani a kapcsolót, nem az elején
Button nullazo = Button(9, LOW);//itt a másik gomb, ez is low állásban indul
Relay RELE(6, true);//Relé hozzáadva normál nyitott állapotban a 6-os kiementre
void setup()
{
Serial.begin(9600);
RELE.begin();//beállítva a relé
szamlalo->setOnTimer(&vagas);//amikor lefut a számláló 0-ra akkor tér rá a vagas nevű részre: void vagas()
szamlalo->Start();
kapcs->setOnTimer(&kapcsolas);//nem indul el, csak a relé visszakapcsolásához kell, amikor lefut a kapcsolas részre ugrik: void kapcsolas()
}
void vagas()
{
RELE.turnOn();//kapcsol a relé
Serial.println("Relé zárva");
kapcs->Start();//indul a második számláló, a relé kikapcsolásának időzítését végzi
}
void kapcsolas()
{
RELE.turnOff();//lefutott a kapcs számláló lekapcsolhat a relé
Serial.println("Relé nyitva");
kapcs->Stop();//eddig kellett, amíg visszaáll a relé
}
void loop()
{
szamlalo->Update();//ez pörgeti a fő folyamatot
{
pause.listen(); //figyeli a pause gombot
if (pause.isPressed()) {//amikor nyomva van, akkor pauzálja a számláló visszaszámlálást
szamlalo->Pause();
Serial.println("MEGÁLLT A CUCC!!!!");
}
if (pause.isReleased()) {
szamlalo->Resume();//felengedve, tovább mehet a számolás
Serial.println("Jóvan, megnyugodtam, megyen tovább.");
}
}
{
nullazo.listen();//nullázó gombot figyeli
if (nullazo.onPress()){//ha nyomva leállítja a fő számlálót
szamlalo->Stop();
RELE.turnOn();//vág egyet
kapcs->Start();//a relé saját számlálóját elindítja, hogy visszaálljon a relé
szamlalo->Start();//majd újraindítja a fő folyamatot
Serial.println("Meglett nyomva a vágóka gomb. Ciklus újraindult.");
}
}
}
Új hozzászólás Aktív témák
- Milyen okostelefont vegyek?
- Milyen RAM-ot vegyek?
- Horvát fricska Elon Musk önvezető Tesláira
- CADA, Polymobil, és más építőkockák
- Kuponkunyeráló
- Adventi kalendáriumok
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Elemlámpa, zseblámpa
- Milyen videókártyát?
- További aktív témák...
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Nekem valahogy csak libekkel megy a program megírása. A kóddal kapcsolatos kérdéseim:
ekkold
