-
GAMEPOD.hu
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 #7539 üzenetére
Nem fordul le IDE-ben vagy mi a baj vele? Valamit azért írhatnál. Most ezt a sok linkelt könyvtárat nem töltöm le, ha nincs meg nekem, milyen lap amit használsz, kicsit bővebben kellene szerintem.
(Én sem vagyok profi, sőt azért keveredtem ide, mert programozás technikai kérdésem lenne. (Saját kódom működik, de valószínű van elegánsabb/hatékonyabb módja is egy bizonyos funkciónak. Csak az én dinnye fejem nem érti a megoldást.) Épp visszaolvasgattok, hátha más is feltette már a kérdést. Meg mindjárt nézem azt is, Wemos D1 mini vagy ESP8266 esetleg ESP32 legyen amit megrendelek. Nem tudom ugyanis elsőre mi az ajánlott. Eddig csak AVR boardjaim voltak, 1 hete használok STM32DUINO-t, és hát a kakaó , ami benne van, megtetszett nagyon. )
[ Szerkesztve ]
-
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
- GIGABYTE RTX 3060TI GAMING OC 8G
- Asus TUF FA507 - 15.6" IPS 144Hz / Ryzen 7 6800H / 16Gb DDR5 4800MHz / RTX 3050 Ti / 1 ÉV GARANCIA
- NVIDIA Dell RTX 2080 Ti 11GB GDDR6 - Beszámítás: OK
- AKCIÓ, BOLTI ÁR ALATT! tado BASIC Okos Radiátor Termosztát 3db-os
- AKCIÓ, BOLTI ÁR ALATT! Xiaomi HUTT C6 ablaktisztító robot
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen