Irrigatie logic controller/project log (6 / 12 stap)

Stap 6: Programing fase


Nu dat ik had een checklist om uit te gaan van ik snel gaan werken met het schrijven van een script in mijn Arduino IDE (geïntegreerde ontwikkelomgeving). Ik ben niet van plan om te vervelen met alles wat er in mijn script, er zijn ook talloze YouTube-video's die er te zien hoe een script schrijven, maar ik zal uitleggen wat er gebeurt in het script.

Ik gebruik mijn Arduino Uno mijn Atmel 328 Chip programmeren.

Mijn in-/ uitgangen

Uitvoer = const int pivotoneerror = 7; Dit is een rode LED om aan te geven van een fout van de spil

Uitvoer = const int pivottwoerror = 8; Dit is een rode LED om aan te geven van pivot twee fout

Uitvoer = const int runled = 9; Dit is een Amber LED om aan te geven dat systeem is in een stormloop staat

Uitvoer = const int startbutton = 10; Dit is een startknop om systeem te starten

Input = const int engineRly = 11; Dit is de output voor relay, aangesloten op murphy switch

Uitvoer = const int testlight = 13; Dit is een mededeling test licht, wanneer test knop is ingedrukt op externe radio dit licht zal lite

De bibliotheken die ik gebruikte

#include //Xbee bibliotheek. Bron: http://code.google.com/p/xbee-arduino/

In het script SETUP start ik Xbee seriële poort met:

XBee.begin(9600);

Nu, voor de hoofdlus van het programma van mijn Arduino lijkt zoiets...

void loop {}

Lees de staat van de startknop in een lokale variabele:

StartButtonRead = digitalRead(startbutton);

StartButtonState = StartButtonRead;

Als startknop wordt ingedrukt en de status van de knop niet hetzelfde is als voorheen, wijzigt de status van START

Als (StartButtonState == HIGH & & StartButtonState! = StartButtonLastState) {}

START =! START;

}

ervoor te zorgen dat de volgende keer door de lus StartButtonLastState is gelijk aan de startknop Status

StartButtonLastState = StartButtonRead;

Als START is ingesteld op hoog, energize de motor estafette en voert LED

Als (START == true) {}

digitalWrite (engineRly, hoge);

digitalWrite (runled, hoge);

}

Als START is ingesteld op laag, deenergize motor relay en voert LED

Als (START == false) {}

digitalWrite (engineRly, laag);

digitalWrite (runled, laag);

}

pogingen om te lezen een pakje van Xbee

xbee.readPacket();

Als (xbee.getResponse().isAvailable()) {}

heb je iets

Als (xbee.getResponse().getApiId() == ZB_IO_SAMPLE_RESPONSE) {}

xbee.getResponse().getZBRxIoSampleResponse(ioSample);

Controleer als de xbee incheckt door ioSample Xbee adres met Xbee adres die ik heb in programing te vergelijken

Als (ioSample.getRemoteAddress64().getLsb() == pivotoneaddressLSB) {}

pivotonecheckin = millis(); merken draaien één xbee ingecheckt

}

else if (ioSample.getRemoteAddress64().getLsb() == pivottwoaddressLSB) {}

pivottwocheckin = millis(); merken draaien twee xbee ingecheckt

}

Zie als de pin die we willen laag is

Als (! ioSample.isDigitalOn(1)) {}

Er is een fout afgesloten motor

START = false;

laat controleren om te zien welke radio er uit, en het verzenden van het display.

Als (ioSample.getRemoteAddress64().getLsb() == pivotoneaddressLSB) {}

digitalWrite (pivotoneerror, hoge); Hiermee schakelt u LED1 voor fout

}

else if (ioSample.getRemoteAddress64().getLsb() == pivottwoaddressLSB) {}

digitalWrite (pivottwoerror, hoge); Hiermee schakelt u LED2 voor fout

}

}

Als (! ioSample.isDigitalOn(2)) {}

cyclus voltooid, afgesloten motor

START = false;

}

if(!ioSample.isDigitalOn(3)) {}

manier om te testen van knooppunt door te draaien op een LED

digitalWrite (testlight, hoge);

}

else {}

digitalWrite(testlight,LOW);

}

}

}

controleert als xbees hebben ingecheckt, in de laatste 1 min. als ze nog niet; afsluiten (xbees zijn

geprogrammeerd om checkin elke 20 sec.) Als Xbee niet gecontroleerd in systeem afsluiten en inschakelen

appropreat LED te tonen van de fout

Als (millis() - pivotonecheckin > = 60000) {}

START = false;

digitalWrite (pivotoneerror, hoge); Hiermee schakelt u LED1 voor fout

}

Als (millis() - pivottwocheckin > = 60000) {}

START = false;

digitalWrite (pivottwoerror, hoge); Hiermee schakelt u LED2 voor fout

}

} / / einde van lus

Gerelateerde Artikelen

Xbox 360 Arcade controller - Project Gyokusho

Xbox 360 Arcade controller - Project Gyokusho

Nou, dit is vrijwel precies hoe het klinkt. Ik heb een bekabelde 360 controller verscheurd, zet de darmen in een mooie box en gesoldeerd sommige arcade-knoppen en een joystick aan. Dacht dat ik zou dit om jullie allemaal een idee van hoe het kan word
INDEXER draaitafel DIY versnellingsbak, Stappenmotor en PLC controller.

INDEXER draaitafel DIY versnellingsbak, Stappenmotor en PLC controller.

http://Youtu.be/lIQm55aLXsIINDEXER draaitafelEen van moeilijke dingen in bouw dingen snijden of maken van cirkels. Hopelijk zal dit helpen dat sommigen van u te verzinnen van enkele nieuwe manieren om dingen te doen. Cirkels, bogen of Curven toe te v
Een extern Programable Relay-Controller (Kerstverlichting of Home automatiseringscontroller)

Een extern Programable Relay-Controller (Kerstverlichting of Home automatiseringscontroller)

Wat was dat?  Een Whats-a-Maja-Thimagig?Yep - een van die!  Dit Instructable breidt mijn Arduino Ethernet-controller om te bepalen van een set van maximaal 6 Relais, maar dat is niet de nette bit.  De nette bit is dat er een web-based statusmachine i
Maak uw eigen project etiketten - eenvoudig!

Maak uw eigen project etiketten - eenvoudig!

Dus je net klaar met dat super Arduino temperatuur controller project dat de bevoegdheden van een 220 volt AC kachel en u wilt toevoegen een waarschuwingsetiket voor veiligheid en ook omdat het ziet er netjes.Maar alles wat je nodig hebt is een "Geva
PWM Fan Controller

PWM Fan Controller

u kunt zien van de PWM Fan Controller project hier.Het hart van de PWM Fan Controller is een PIC 12F675 microcontroller. Deze microcontroller is het lezen van de analoge uitgang van een LM35 temperatuursensor met behulp van een ADC (analoog digitaal
EZProbe, een EZ430 op basis van logica sonde

EZProbe, een EZ430 op basis van logica sonde

Dit is een eenvoudige logica sonde project gebaseerd op TI EZ430-dongle. Ik maakte gebruik van een gratis aanbieden op een aantal ez430s van TI in september 2010. ze zijn erg handig en leuk in het uitproberen van kleine codefragmenten en Bekijk het l
GSM gebaseerd geautomatiseerd irrigatiesysteem met behulp van regen-pistool

GSM gebaseerd geautomatiseerd irrigatiesysteem met behulp van regen-pistool

Moderne digitale tijdperk van onze 21ste eeuw moet automatisering in elke sector. De combinatie van technologie om te vergroten van de geloofwaardigheid van een andere technologie is helemaal niet een heel goed idee. India is een land waar de landbou
Zombie Apocalypse Quarantine Compound

Zombie Apocalypse Quarantine Compound

We hebben enkele grote thema Halloween partijen gehad door de jaren heen, en we besloten dat 2015 het jaar van de Zombie-Apocalyps was. We hebben samengesteld een enkele Instructable tonen de hele "onderzoek faciliteit en quarantaine Compound":)
Bouwen van een robot afstandsbediening

Bouwen van een robot afstandsbediening

In deze post zal ik beschrijven hoe ik ontwerpen, maken, testen en verbeteren van een aangepaste RC afstandsbediening.Het doel van dit project is het creëren van een afstandsbediening die kan alternatief voor een RC zender of vergelijkbare commerciël
R2D2

R2D2

Het doel van dit Instructable moet de lezer voorzien van een Richtsnoer betreffende hoe ik benaderde de R2D2 robot te bouwen. Mijn R2D2 heeft de volgende functies:Rotatie van de koepelProjectieVoor- en achterzijde PSI LED'sVoor- en achterzijde logica
OSD-Audio ATM-7 Smartphone Speaker controle met Arduino en Blynk

OSD-Audio ATM-7 Smartphone Speaker controle met Arduino en Blynk

Deze dagen zijn er verschillende manieren om te implementeren multi-zone geluid met behulp van smartphone gebaseerd controle, maar de meeste zijn beperkt tot een aantal zones of vereisen duur merkgebonden vakken op elke locatie (Hello! Sonos). Een sp
Nixie Driver HAT

Nixie Driver HAT

Hallo Makers!Iedereen houdt van een beetje Retro technologie, en in dit geval heb ik in liefde met Nixie buizen, die hoog op de ontzagwekkende-schaal voor zijn oude Sovjet-Rusland tech kunnen we nog steeds onze wanten krijgen op en maken coole retro
Hoe het bouwen van een draadloze hexapod robot

Hoe het bouwen van een draadloze hexapod robot

hier is een video van het in actie.Facebook-pagina, zodat u up-to-date op v2 blijven kuntHebt u dit instructable?  Stuur me foto's en ik zal het toevoegen op deze pagina!Wanneer voltooid, zul je een wandelende robot die is ongeveer 2 voet breed en ma
Hoe tweet van een Arduino met behulp van de wifi-Shield

Hoe tweet van een Arduino met behulp van de wifi-Shield

he, ik ben een grote fan van Instructables. Ik heb het consequent gebruikt voor de afgelopen 3 jaar en nu is het tijd voor mij om te schrijven een zelf.Hier gaan we. Dit instructable is voor degenen die willen een levenloos voorwerp tweet automatisch