-
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
- Otthoni hálózat és internet megosztás
- Bemutatkozott a Poco X7 és X7 Pro
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen Android TV boxot vegyek?
- Fotók, videók mobillal
- Kerékpárosok, bringások ide!
- Renault, Dacia topik
- Kuponkunyeráló
- Lakáshitel, lakásvásárlás
- Milyen videókártyát?
- További aktív témák...
- AKCIÓ! HP Victus Gaming 16-S0017NH 16 notebook - R5 7640HS 32GB DDR5 1TB SSD RTX 4050 6GB WIN1
- Részletfizetés. ASUS TUF Gaming F16 FX608JMR-QT021
- LG UltraGear Gaming Monitorok -30%
- Új Dell 14 Inspiron 5435 FHD+ Ryzen7 7730U 4.5Ghz 16GB 512GB SSD Radeon RX Vega 8 Win11 Garancia
- MSI CreatorPro Z16P RTX A5500 TOUCH! (vapor chamberrel)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest