Bevattning logic controller/projekt log (6 / 12 steg)

Steg 6: Programmering fas



Nu när jag haft en checklista att gå från jag snabbt gå till arbetet skriver ett skript i min Arduino IDE (Integrated development environment). Jag kommer inte för att tråka ut er med allt som pågår i mitt manus, det också otaliga YouTube videos ute visar hur man skriver ett manus, men jag kommer att förklara vad som händer i skriptet.

Jag använder min Arduino Uno för att programmera min Atmel 328 Chip.

Min in-/ utgångar

Output = const int pivotoneerror = 7. Detta är en röd LED om pivot ett fel inträffar

Output = const int pivottwoerror = 8; Detta är en röd LED om pivot två fel inträffar

Output = const int runled = 9; Detta är en Amber LED tyder på att systemet är i ett kör

Output = const int StartOch = 10; Detta är en startknappen för att starta systemet

Input = const int engineRly = 11; Detta är utgången för relä, ansluten till murphy switch

Output = const int testlight = 13. Detta är ett meddelande test ljus, när Testknapp trycks på Fjärradion detta ljus kommer lite

De biblioteken

#include //Xbee bibliotek. Källa: http://code.google.com/p/xbee-arduino/

I skriptet SETUP starta jag Xbee Serial Port med:

XBee.BEGIN(9600);

Nu, för de viktigaste loop i min Arduino program ser det ut så här...

void loop() {

Läs statligt av start-knappen i en lokal variabel:

StartButtonRead = digitalRead(startbutton);

StartButtonState = StartButtonRead;

om trycker på start-knappen och knappen är inte samma som det var tidigare, ändra tillståndet för START

om (StartButtonState == hög & & StartButtonState! = StartButtonLastState) {

START =! BÖRJA;

}

se till att nästa gång genom öglan StartButtonLastState är lika med startknapp Status

StartButtonLastState = StartButtonRead;

om START är inställd på hög, vitalisera motor reläet och kör LED

om (starta == true) {

digitalWrite (engineRly, hög);

digitalWrite (runled, hög);

}

om START är inställd på låg, deenergize motor relä och kör LED

om (starta == false) {

digitalWrite (engineRly, låg);

digitalWrite (runled, låg);

}

försök att läsa ett paket från Xbee

xbee.readPacket();

om (xbee.getResponse().isAvailable()) {

fick något

om (xbee.getResponse().getApiId() == ZB_IO_SAMPLE_RESPONSE) {

xbee.getResponse().getZBRxIoSampleResponse(ioSample);

Kontrollera om xbee's checkar in genom att jämföra ioSample Xbee adress med Xbee adress jag har i programmering

om (ioSample.getRemoteAddress64().getLsb() == pivotoneaddressLSB) {

pivotonecheckin = millis(); Marks pivotera en xbee kontrollerat

}

annat if (ioSample.getRemoteAddress64().getLsb() == pivottwoaddressLSB) {

pivottwocheckin = millis(); Marks pivotera två xbee kontrollerat

}

om PIN-koden vi vill ha är låg

om (! ioSample.isDigitalOn(1)) {

Det finns ett fel stänga motorn

START = false;

kan se vilken radio det är från och skicka den till displayen.

om (ioSample.getRemoteAddress64().getLsb() == pivotoneaddressLSB) {

digitalWrite (pivotoneerror, hög); vänder på LED1 för fel

}

annat if (ioSample.getRemoteAddress64().getLsb() == pivottwoaddressLSB) {

digitalWrite (pivottwoerror, hög); vänder på LED2 för fel

}

}

om (! ioSample.isDigitalOn(2)) {

cykla kompletta, stänga av motorn

START = false;

}

IF(!ioSample.isDigitalOn(3)) {

sätt att testa nod genom att vrida på en LED

digitalWrite (testlight, hög);

}

annat {

digitalWrite(testlight,LOW);

}

}

}

kontrollerar om xbees har checkat in, i den senaste 1 min. om de inte har; stänga (xbees är

programmerat att checka in varje 20 SEK.) om Xbee inte har kontrollerat stänga i systemet och slå på

appropreat LED att Visa felet

om (millis() - pivotonecheckin > = 60000) {

START = false;

digitalWrite (pivotoneerror, hög); vänder på LED1 för fel

}

om (millis() - pivottwocheckin > = 60000) {

START = false;

digitalWrite (pivottwoerror, hög); vänder på LED2 för fel

}

} / / end av loop

Se Steg
Relaterade Ämnen

En distans programmerbara Relay Controller (Christmas Lights eller hemautomation Controller)

Vad var det? En Whats-a-Maja-Thimagig?Japp - en av dem! Detta Instructable utökar min Arduino Ethernet controller för att styra en uppsättning upp till 6 reläer, men det är inte snyggt lite. Snygg lite är att det finns en webbaserad tillståndsdator i...

Automatiska persienner Controller (PICAXE)

vill bygga en motoriserade persienner Controller för ca $15,00? Här är hur. Jag tycker om att ha krukväxter växter och se dem växa, men att se till att de få tillräckligt ljus kan vara en utmaning. Jag har en bokhylla framför fönstret i mitt sovrum m...

Arduino Leonardo Micro som Game Controller/Joystick

VIKTIGT: Denna artikel är för Arduino IDE version 1.6.6 (eller ovan). Lägga till en USB-spelenhet till en Arduino Leonardo eller Micro använder Arduino IDE version 1.6.5 (eller under) se följande Instructable: lägga till USB-spelenhet till Arduino Le...

DIY piller flaska spets växla

jag behövde en tip-växel för ett projekt på jobbet för att avgöra när en rörlig del av utrustningen hade sänkt i position. Min inspiration kom från en tilt switch jag såg i ett flipperspel som bestod av en svängande pendel och en ledande slinga runt...

Zombie Apocalypse Quarantine Compound

Vi har haft några bra Halloween temafester genom åren, och vi beslutade att 2015 var året av Zombie apokalyps. Vi har satt ihop en enda Instructable visar den hela "forskning anläggning och karantän sammansatta":), som innehåller sex animerade d...

Fenrisulven: En Open source hund robot

Stationära ben rörelseRotation transformeringWalking DemoAnvändargränssnittetDetta är en mini öppen källkod däggdjur fyrfotadjur robot eller du kan se det som en fyra ben hund robot. Syftet med detta projekt är att ge människor möjligheten att skapa...

GSM baserade automatiserade bevattningssystem med regn-Gun

Moderna digitaliserade eran av vår 21: a århundradet måste automation inom varje sektor. Kombinera teknik för att öka trovärdigheten i en en annan teknik är inte alls en mycket bra idé. Indien är ett land där jordbruket är stora och vidsträckta fälte...

Hur man använder den talande ES6928P röst erkännande System_Stand-ensam/nej PC REQ skulle

Hej alla! Välkommen till min Instructable!Tack för att ha en gåskarl. Ungefär åtta månader sedan, bestämde jag mig att en av mina nya satsningar skulle vara att skapa en röst erkännandesystem som kunde vara utbildad manuellt, och utan att ha till grä...

Hur du tweet från en Arduino använder wifi sheild

Hej, jag är ett stort fan av Instructables. Jag har konsekvent använt det för de senaste 3 åren och nu är dags för mig för att skriva en själv.Här går vi. Detta instructable är för dem som vill göra vissa livlös objektet tweet automatiskt. Precis som...

Pandemi fläkten

monteringsanvisningar för en DIY Ventilator prototyp.Detta kan vara användbart i en aviär influensa pandemi.Konstruerad med allmänt tillgängliga komponenter.Många av oss ändra, hacka, re-syfte och DIY för att spara pengar, bygga något unikt, skapa ko...

INDEXERAREN roterande bord DIY växellåda, stegmotor och PLC styrenhet.

http://youtu.be/lIQm55aLXsIINDEXERAREN roterande bordEn av svåra saker i att konstruera saker är skära eller att göra cirklar. Detta kommer förhoppningsvis hjälpa några av er att uppfinna nya sätt att göra saker. Att lägga till cirklar, bågar eller k...

Bildskärmsmenyn ljud ATM-7 Smartphone talaren med Arduino och Blynk

Dessa dagar finns det flera sätt att genomföra flera zoner ljudet med smartphone baserad kontroll men de flesta är begränsade till ett par zoner eller kräver dyra egna rutor i varje läge (Hej! Sonos). En talare väljare ansluten till en mottagare med...

Komposten te för Hydroponics och mer...

Dessa instruktioner är för uppmuntrande levande nyttiga bakteriella till utnyttjandet uppehåll i din växtens rötter.REKOMMENDERAS INTE FÖR STERILA HYDROPONICSTill att börja din kompost te, måste du börja med en bra kompost. Bästa resultaten kommer fr...

DIY Quadcopter från Scratch

Att flyga är något som har varit del av mannens önskan för evigt. Vi har velat ta till himlen ända sedan vi först såg en fågel flyga och med tillkomsten av teknik vi kan resa med flyg över hela världen. Men en personlig flygning erfarenhet är något u...

2WD fordonet och PROTOTYPING PCB

Detta Instructable behandlar byggandet av en RC 2WD robot under Arduino, och byggandet av prototyper PCB på fordonet.Det finns många sidor behandlar liknande ämnen, t.ex. för fordonet: http://billwaa.wordpress.com/2012/06/06/arduino-l... , och för pr...

Hur man identifierar röda och gula sladdar på en K termoelement... med en Magnet!

Om du inte vill att läsa igenom denna hela berättelsen, kommer jag rakt på sak med en spoiler:Den röda sladden på en K typ termoelement kommer inte hålla sig till en magnet och den gula sladden kommer att hålla sig till en magnet!Kort och koncist. Fi...

Gör din egen projektet etiketter - helt enkelt!

Så du precis avslutat det super Arduino temperatur controller projekt som driver en 220 volts AC värmare och du vill lägga till en varningsskylt för säkerhet och även eftersom det ser snygg.Men, allt du behöver är en "Fara High Voltage" klisterm...

DIY dubbel dubbelsidig PCB/Circuit Board etsning

detta är den metod jag använder till etch dubbel dubbelsidig kretskort hemma. Jag har använt olika metoder för de senaste månaderna och har bosatt sig på den här, som jag anser vara det mest pålitliga sättet att få båda sidor att rada upp.Vad du behö...

Fixa din motionscykel NordicTrack

Den andra natten jag red min Nordictrack utöva cykel och alla plötsligt displayen sluta och spänningen på den peddles gick slack. Hustrun har varit på mig under ganska lång tid att börja träna som jag sitter bakom datorn större delen av dagen.Så jag...