Kontrollerad Intel Edison temperatur Relay (3 / 4 steg)
Steg 3: Skriva koden
Alla anslutna upp? tid att fastna i att koden,
Starta upp Arduino IDE och göra ett nytt projekt / skissbok, och vi kan få kodning!
Jag ska prata igenom min koden nedan men du kan ladda ner hela saken här att spara du kopiera och klistra in bitar av det tillsammans.
Något med ett "/ /" innan det är en kommentar
Detta är början av koden, bara lastning biblioteken
inklusive nödvändiga bibliotek
#include < Wire.h >
#include "rgb_lcd.h"
Denna nästa bit uppsättningar variabler som huvudloop kräver. Som du ser i kommentarerna; Det är talande det att temp sensorn är på A0, reläet kopplas till D4 och LED på D3
inställningen var
CONST int pinTemp = A0; stift av temperaturgivare
float temperatur;
int B = 3975; B värdet av termistor
float resistens.
rgb_lcd lcd;
CONST int relaypin = 4; Reläet är kopplad till D4
CONST int ledpin = 3; LED-modulen är ansluten till D3
Nu kör vi avsnittet installation, är denna kod bara sprang en gång vid start av Edison, finns det inget behov för koden här ska köras om och om igen i en slinga.
För det sätter stiften D3 och D4 att mata och LCD skärmstorlek (i mitt fall 16 * 2)
den setup delen
void setup()
{
pinMode (relaypin, produktionen); uppsättningar relä till utgång
pinMode (ledpin, produktionen); uppsättningar ledde styrelsen att produktionen
LCD.BEGIN (16, 2); låter den huvudloop vet att lcd är 16 av 2
}
Nu till det viktigaste kretsar av kod:
Det här avsnittet beräknar råa produktionen av temp sensorn i grader celsius, som är mycket lättare för oss människor att läsa.
void loop() / / start av huvudloop kod
{
int val = analogRead(pinTemp); få analoga värde
Resistance=(float)(1023-val) * 10000/val; få motstånd
temperatur = 1 / (log (motstånd/10000) /B+1/298.15)-273.15; calc temperatur
Nu denna bit skriver ut till LCD-skärmen, bara av visuella skäl, är det praktiskt att ha, i framtiden kanske du vill ta bort LCD eftersom det inte är en viktig del av projektet. Kommentarer förklara det för dig
Skriva ut till LCD-skärmen
LCD.Print ("det är");
LCD.Print(temperature); skriva ut av de ovanstående beräkningarna
LCD.Print ("* C");
Delay(1000); fördröja 1 sekund, justera detta för att påverka den som att enheten avsöker temp
LCD.Clear(); uppdaterar LCD
Nu till den intressanta delen, denna bit ständigt läser värdet i temperatur sond, kontrollerar om värdet är över 25, om det är det sedan aktiverar relä och LED (ansluta ett fan till det för en bra kylare). Om värdet är under 25 då lämnar det den LED och Relay off.
Om temperaturen är aktivera över 25 grader sedan relä och LED
om (temperatur > 25) //if temp är mer att 25 sedan åtgärder den nedan
{
digitalWrite (relaypin, hög); vänder på reläet om temp över 25
digitalWrite (ledpin, hög); också visar på LED
}
annat / / om det inte är 25 sedan hålla reläet och ledde bort
{
digitalWrite (relaypin, låg); Inaktivera reläet
digitalWrite (ledpin, låg); Inaktivera LED
}
}
Thats koden :) tid för en te paus...
Bra fika? Nästa steg!