Stap 3: Schrijven van de code
Alle aangesloten? tijd om te blijven steken in de code,
Lancering van de Arduino IDE en maak een nieuw project / schetsboek, en we kunnen krijgen codering!
Ik zal praten via mijn onderstaande code, maar u kunt het downloaden van het hele ding hier op te slaan u kopiëren en plakken van stukjes van het samen.
Iets met een "/ /" voordat er een commentaar
Dit is het begin van de code, gewoon laden van de bibliotheken
// including required libraries #include <Wire.h> #include "rgb_lcd.h"
Dit volgende beetje Hiermee stelt u de variabelen die de hoofdlus vereist. Zoals u in de commentaren zien kunt; het is het veelzeggend dat de temp sensor op A0, het Relais is gekoppeld aan de D4 en de LED op de D3
//setting var's const int pinTemp = A0; // pin of temperature sensor float temperature; int B=3975; // B value of the thermistor float resistance; rgb_lcd lcd; const int relaypin = 4; //the Relay is attached to D4 const int ledpin = 3; //The LED module is attached to D3
Nu lopen we het gedeelte setup, is deze code alleen liep zodra op het opstarten van de Edison, er is geen noodzaak voor de code hier over en weer in een lus worden uitgevoerd.
Het stelt de pinnen D3 en D4 om uit te voeren en de grootte van het LCD-scherm (in mijn geval 16 * 2)
// the setup part void setup() { pinMode(relaypin, OUTPUT); //sets relay to output pinMode(ledpin, OUTPUT); //sets led board to output lcd.begin(16, 2); // lets the main loop know that the lcd is 16 by 2 }
Nu voor de hoofdlus van code:
In deze sectie wordt de ruwe uitvoer van de temp sensor berekend in graden celsius, die is een stuk makkelijker voor ons mensen te lezen.
void loop() // start of the main loop of code { int val = analogRead(pinTemp); // get analog value resistance=(float)(1023-val)*10000/val; // get resistance temperature=1/(log(resistance/10000)/B+1/298.15)-273.15; // calc temperature
Nu deze bit wordt afgedrukt uit naar het LCD-scherm, alleen voor visuele redenen, het is handig om te hebben, in de toekomst kan u wilt verwijderen van het LCD-scherm, want het is niet een essentieel onderdeel van het project. De reacties leggen het voor u
// Print out to the LCD lcd.print("It is "); lcd.print(temperature); //print the output of the above calculations lcd.print(" *C"); delay(1000); // delay 1 second, adjust this to affect the rate that the device polls the temp lcd.clear(); // refreshes the LCD
Nu voor de interessante deel, dit stukje leest de waarde van de temperatuursonde, controleert voortdurend om te zien of de waarde meer dan 25, als het is het dan activeert de estafette en de LED (een fan verbinding te maken met het voor een goede koeler). Als de waarde onder de 25 dan ophoudt het de LED en het Relais.
//If temperature is over 25 degrees then enable relay and LED if (temperature > 25) //if the temp is more that 25 then action the below { digitalWrite(relaypin, HIGH); // turns on the relay if temp above 25 digitalWrite(ledpin, HIGH); // also turns on the LED } else // if it isn't 25 then keep the relay and led off { digitalWrite(relaypin, LOW); //turn the relay off digitalWrite(ledpin, LOW); //turn the LED off } }
Dat is de code :) tijd voor een theepauze...
Goede cuppa? Volgende stap!