Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
-
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
-
távcsőves
senior tag
válasz
Tomi8822 #7567 üzenetére
Remélem ez már elég segítség lesz. (nagyon belezavarodtál) Ha nem világos valami, kérdezz, de igyekeztem rendesen elmagyarázni a vázlatban.
// Megadod a szükséges könyvtárokat
#include <RTClib.h> //Ez kell az óramodul hardwerének kezeléséhez
#include <Wire.h> //Ez a könyvtár kezeli az I2C buszt, amihez az óramodulod kapcsolodik, A4 (SDA) és A5 (SCL) pin az Uno-n.
RTC_DS1307 RTC;
void setup() {
// Inditod az I2C buszt
Wire.begin();
// (3-as számú digitális pint kimenetre állítod) ezt majd töbszörözöd, ahány reléd van
// és amelyik pinhez kapcsoltad értelemszerűen változtattod a számát
pinMode(3, OUTPUT);
}
void loop() {
// minden ciklus elején kéred az óramodultól az aktuális időt/dátumot
DateTime now = RTC.now();
/*Szerintem érdemes lenne az időt egy egységben kezelned.
Tehát nem 6óra és 40percben, hanem percben. Ekkor a kapcsolási időket percben adod meg.
Példa: 6óra = 6*60perc ami, 360 perc, ehhez adod a plusz 40 perced. Az eremény
pedig 400 perc, ami egyenlő 6óra és 40 percel. A vázlatod alapján ez az első relé bekapcsolási ideje.
A vázlatodban az első relé kikapcsolási ideje pedig 17óra 40 perc (=1060 perc) ami felírható így is: 1060perc=(17*60)+40
A másodperceket szerintem teljesen elfelejthetted, nem hiszem, hogy egy akvárium lakói a másodpercekre
érzékenyek lennének. Meg az évre, meg a hónapra, meg a.... Természetesen fellehet írni órában is az időt, ekkor tört számot kapsz.
A lényeg, hogy egy egységben kezeld. Almát almával, körtét körtével hasonlíts össze. */
// Elkészíted a perc változót és a tartalma az aktuális óra és perc, percek számában.
int perc = (now.hour() * 60) + now.minute();
/* használod az if else statement a be és kikapcsolási idők ellenőrzésére egy egyszerű érték összehasonlításal.
tehát, ha az aktuális percek száma nagyobb, mint 400 de kisebb, mint 1060, a relé bekapcsolva, minden más esetben kikapcsolva.
if ((perc > 400) && (perc < 1060)) {
digitalWrite(3, HIGH);
} else {
digitalWrite(3, LOW);
}
*/
// Emberi szemnek értelmesebb formábban pedig így néz ki az if else, ez alapján remélem érthető a müködése egy relére
if ((perc > (6 * 60) + 40) && (perc < (17 * 60) + 40)) {
digitalWrite(3, HIGH);
} else {
digitalWrite(3, LOW);
}
} // És amig neked írtam, addig lekapott a pörkölt, ajánlom, hogy megépítsd az akvárium vezérlőd!! ;)
Új hozzászólás Aktív témák
- Álláskeresés, interjú, önéletrajz
- Eredeti játékok OFF topik
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Építő/felújító topik
- Fotók, videók mobillal
- Elektromos autók - motorok
- Mégis marad a Windows 10 ingyenes frissítése
- Luck Dragon: Asszociációs játék. :)
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- DELL PowerEdge R730xd 16LFF 160TB+400GB 2U rack - 2xE5-2683v4 (16c/32t),256GB RAM,2x10G NET,HBA330
- Eladó egy oneplus 9 pro 256/12
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / RX 6600XT / 32GB DDR4 / 512GB SSD
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA -Kártyafüggetlen, MS3601, 97% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest