- Milyen videókártyát?
- Milyen nyomtatót vegyek?
- OLED monitor topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- 5.1, 7.1 és gamer fejhallgatók
- Fejhallgató erősítő és DAC topik
- HTPC (házimozi PC) topik
- Megjött a Razer DeathAdder egerek legfrissebb nemzedéke
- Vezeték nélküli fülhallgatók
- Ha a fejlesztőkön múlik, akkor nem tér vissza a GPU-s PhysX
-
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
- Fedezd fel az NVIDIA világát! Kamatmentes rèszletre is!
- Telefon felváráslás!! Samsung Galaxy S22/Samsung Galaxy S22+/Samsung Galaxy S22 Ultra
- Intel ES Core i5-3470 4-Core 3.2GHz LGA1155
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
- Thinkpad X230 legenda: i7 CPU, IPS kijelző, 12 GB, dupla SSD, magyar villbill, webcam, fingerprint
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest