Ändrar Tracker (6 / 7 steg)
Steg 6: Grand Unifying kod
FÖR MULTIPLEXING
James på det igen, den här gången försöker förena alla
sensorerna så att de arbetar för ett gemensamt mål. Awesome saker här!!!
CONST int trig = 2; PIN där ultraljud trig pin är ansluten
CONST int echo = 3; PIN där ultraljud echo pin är ansluten
CONST int en = 4; LSB mux urval kod
CONST int b = 5; LSB 2 i mux Välj rad
CONST int c = 6; MSB 2 av Markera raden för mux
CONST int d = 7. MSB av Markera raden för mux
CONST int generator = 9. datalinje för generator
CONST int Summer = 10; ljudet blir använda summern
CONST int greenLed = 11; grön lysdiod anslutna på detta stift
CONST int redLed = 12; röd led anslutna här
CONST int fan = 13. fläkt är ansluten på detta stift
CONST int muxdata = A0; produktionen av multiplexer data linjen
CONST int rftransmitter = A1; inmatning av radiofrekvens sändaren
#include / / ringer servo motor biblioteket
Servo servo; Att ge ett namn till den PIN-kod knuten till servo
int lighthreshold = 500. Tröskelvärde för LDR-sensor
int magneticthreshold = 500. Tröskeln för Hall-effekt sensorn (A1325)
CONST float tempethreshold = 25,0; Originalplan temperatur för LM35 temperaturgivare
int switchState = 0; Kontrollera tillståndet i växeln som en tryckgivare
int soilmoisturethreshold = 500. Kontrollera analoga markens vattenhalt
int smcState = 0; Kontrollera tillståndet för fukthalten digitalt
int irdistance = 30. Inställningsområde för inrared sensorer
int maxRange = 200. Maximal räckvidd behövs i centimeter
int minRange = 0; Minsta område behövs i centimeter
lång varaktighet; Puls wise skickade signalens
långa avstånd; tillryggalagd sträcka
int muxVal, rfVal; Läsa statligt av insatsvaror
int tid = 500.
void setup()
{
servo.attach(8); Fästa min servomotor pin till pin 88
Serial.BEGIN(9600); överföringshastigheten för kommunikation mellan laptop och arduino
pinMode (trig, OUTPUT); att förklara som en utgångsstiftet
pinMode (echo, indata); att förklara som en INPUT stift
pinMode (a, utgång); att förklara som en utgångsstiftet
pinMode (b, produktionen); att förklara som en utgångsstiftet
pinMode (c, produktionen); att förklara som en utgångsstiftet
pinMode (d, produktionen); att förklara som en utgångsstiftet
pinMode (generator, produktionen); att förklara som en utgångsstiftet
pinMode (Summer, produktionen); att förklara som en utgångsstiftet
pinMode (greenLed, produktionen); att förklara som en utgångsstiftet
pinMode (redLed, produktionen); att förklara som en utgångsstiftet
pinMode (fläkt, OUTPUT); att förklara som en utgångsstiftet
pinMode (muxdata, ingång); att förklara som en INPUT stift
pinMode (rftransmitter, ingång); att förklara som en INPUT stift
Serial.println ("Zvaunondiita så!"); Bara ett välkomstmeddelande för min Raspberry Pi
digitalWrite (en, låg);
digitalWrite b, låga.
digitalWrite (c, låg).
digitalWrite d, låg.
}
void loop()
{
digitalWrite (en, låg);
digitalWrite b, låga.
digitalWrite (c, låg).
digitalWrite d, låg.
Delay(Time); inte säker på om denna försening är absolut nödvändigt
int readInZero = analogRead(muxdata); Läs det arduino ingångsstiftet att Dg526 använder
flyta solRad = (readInZero*1000.0/1023.0);
Serial.Print ("sol-utstrålning är");
Serial.Print(solRad); Använd resultatet
Serial.println ("watt per kvadratmeter").
digitalWrite (en, hög);
digitalWrite b, låga.
digitalWrite (c, låg).
digitalWrite d, låg.
Delay(Time); inte säker på om denna försening är absolut nödvändigt
int readInOne = analogRead(muxdata); Läs det arduino analoga ingångsstiftet
flyta tryck = (readInOne*1012.2/1023.0);
Serial.Print ("lufttrycket läsningar");
Serial.Print(Pressure); Använd resultatet
Serial.println ("kPa").
digitalWrite (en, låg);
digitalWrite b, hög.
digitalWrite (c, låg).
digitalWrite d, låg.
Delay(Time);
int readInTwo = analogRead(muxdata);
float temp = (readInTwo*500.0/1203.0);
Serial.Print ("omgivningstemperatur läsningar");
Serial.Print(temp); Använd resultatet
Serial.println ("grad Celsius");
digitalWrite (en, hög);
digitalWrite b, hög.
digitalWrite (c, låg).
digitalWrite d, låg.
Delay(Time);
int readInThree = analogRead(muxdata);
Serial.Print ("The Vindhastighet är");
flyta vindhastigheten = (readInThree*2.0/1023.0);
Serial.Print(windspeed);
Serial.println ("meter per sekund"); Använd resultatet
digitalWrite (en, låg);
digitalWrite b, låga.
digitalWrite (c, hög).
digitalWrite d, låg.
Delay(Time);
int readInFour = analogRead(muxdata);
flyta smc = (readInFour*100.0/1023.0);
Serial.Print ("jord fukt innehåll är");
Serial.Print(SMC);
Serial.println ("%"); Använd resultatet
}