DS1307 órachippel beállítható kapcsolóóra
köszi így már működik 
én ezzel a megoldással próbálkoztam, de persze nem volt jó
tudom a puska szerint az "and" jelzése &&, de amint beírom az 1.01-es fordító egyből elkezd hibát jelezni, még csak le sem kell ellenőriztetni vele.
Most azt kell kitalálnom, hogy gombnyomásra hogyan rúgjam fel az egyenletet kívülről
Köszi még egyszer!
Üdv:Viktor
én ezzel a megoldással próbálkoztam, de persze nem volt jó
Kód: Egész kijelölése
if ((hour*60+minute>5)||(hour*60+minute!>43))Most azt kell kitalálnom, hogy gombnyomásra hogyan rúgjam fel az egyenletet kívülről
Köszi még egyszer!
Üdv:Viktor
Kód: Egész kijelölése
if (ido<7:40) {
if (ido > 6:10) {
rele behuz;
}
}
Kód: Egész kijelölése
// Ha Start és Stop között van:
if ((hour*60+minute > 1417) && (hour*60+minute < 1479)) {digitalWrite (relPin, HIGH);}
else
digitalWrite (relPin, LOW);
jelenleg ez a működő verzió
A szitu az most, hogy két ilyen időzítésre lesz szükségem, az egyik a világítást kapcsolja, a másik pedig a CO2-t (növényes akvarisztika szépségei, kell az extra CO2-a növények fotoszintéziséhez, nőnek tőle mint a gomba
)
Viszont lesz egy gomb is, amit ha megnyomok, akkor 2-3 percre megáll a szűrő, hogy ne hordja szét a kaját a vízben, majd ennek letelte után autómatikusan újraindul, kétállásúak a relék, így értelemszerűen itt az állandó zárt ágra lesz kötve a szűrő. Viszont amikor áll a szűrő, a CO2-t is le kellene kapcsolni. Van rá mód, hogy ezt valahogy be lehessen szúrni a fenti programrészbe.
Nyomógomb programrészem alapja így néz ki:
Kód: Egész kijelölése
if (hour*60+minute>530 and hour*60+minute<545) { digitalWrite relPin, HIGH);
}
else
{
digitalWrite (relPin, LOW);
}
Viszont lesz egy gomb is, amit ha megnyomok, akkor 2-3 percre megáll a szűrő, hogy ne hordja szét a kaját a vízben, majd ennek letelte után autómatikusan újraindul, kétállásúak a relék, így értelemszerűen itt az állandó zárt ágra lesz kötve a szűrő. Viszont amikor áll a szűrő, a CO2-t is le kellene kapcsolni. Van rá mód, hogy ezt valahogy be lehessen szúrni a fenti programrészbe.
Nyomógomb programrészem alapja így néz ki:
Kód: Egész kijelölése
const int buttonPin = 2;
const int rel2Pin = 10;
int buttonState = 0;
void setup() {
pinMode(rel2Pin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(rel2Pin, HIGH);
}
else {
digitalWrite(rel2Pin, LOW);
}
}így csináltam meg, de sajnos így nem működik
, a CO2 vezérlés kimenete be sem kapcsol, csak akkor 1 másodpercre, amikor a nyomógomb ideje lejár. Talán rosszul fogalmaztam, tehát az idővezérelt CO2 kimenetnek, ami be van kapcsolva, akkor le kellene kapcsolnia amíg a nyomógomb kimenete aktív
Kód: Egész kijelölése
if (hour*60+minute>530 and hour*60+minute<1545)
if (hour*60+minute>530 and buttonState==HIGH)
{
digitalWrite (relco2Pin, HIGH);
}
else
{
digitalWrite (relco2Pin, LOW);
}
OK, és azt hogy , nagyon hálás vagyok, hogy segítesz, de nekem zéró programozási ismeretem van, az elektronika, és az automatizálás érdekel mert van pár dolog amit szívesen megcsinálnék a házban, de amúgy esztergályos a szakmám, persze CNC tanfolyammal kiegészítve, és valamikor elvégeztem egy 3 napos PLC tanfolyamot, ami másra nem volt jó, mint vasúti átkelőt programozni. Létraábrában ezt a problémát könnyen meg lehet oldani. Korábban egy Omron Zent már felprogramoztam akváriumvezérlésre, de azzal megcsinálni, jóval költségesebb mint arduinoval. Természetesen nem várom el , hogy helyettem megírd, én is folyamatosan túrom a netet hátha van valahol valami olyan program feltéve amiben találok segítséget, de valahogy ezzel az időkapcsolással senki nem foglakozott, amiket írsz azok meg sokszor csak felületes példák, amiket mint az előbb is azt sem tudom hová, és milyen formában szúrjak be.Robert írta:A gombkezelésed nem jó.
Tegyél be kapcsolót
Délután a CNC gépet pakolva a következőn agyaltam
, ha lehetne adni számértéket a nyomógombnak, akkor fel lehetne rúgni az időkapcsolós kimenet feltételét
Vagyis ha megoldható, hogy a
nyomógomb elengedve=60
megnyomva=0
akkor a nyomógomb kimenetét is meg lehetne írni feltételesre
if (buttonState = 60) { digitalWrite (relPin, HIGH)};
Az időkapcsoló, ami jelenleg ilyen
if (hour*60+minute>530 and hour*60+minute<545)
így módosulna
if (hour*buttonState+minute>530 and hour*60+minute<545)
vagyis ha megnyomom a gombot, akkor elméletileg 0-val szorzódna az óra, és ez biztos, hogy kisebb lenne mint a jelenleg beírt 530
Vagyis ha megoldható, hogy a
nyomógomb elengedve=60
megnyomva=0
akkor a nyomógomb kimenetét is meg lehetne írni feltételesre
if (buttonState = 60) { digitalWrite (relPin, HIGH)};
Az időkapcsoló, ami jelenleg ilyen
if (hour*60+minute>530 and hour*60+minute<545)
így módosulna
if (hour*buttonState+minute>530 and hour*60+minute<545)
vagyis ha megnyomom a gombot, akkor elméletileg 0-val szorzódna az óra, és ez biztos, hogy kisebb lenne mint a jelenleg beírt 530
de igen, csak így nem működikRobert írta:
if (orahatarok and gombstatus ) then....
Nem egyszerűbb?
Kód: Egész kijelölése
if (hour*60+minute>506 and hour*60+minute<545 and buttonState == LOW)
Szintaktikai javítás:
Kód: Egész kijelölése
if ((hour*60+minute>506) and (hour*60+minute<545) and (buttonState == LOW))