Intellekten Edison: Avstånd bugg - HC-SR04 (3 / 5 steg)
Steg 3: Ansluta och kodning.
Ansluta bitar till styrelsen som på bilden och Anslut styrelsen till PC.
Öppna din kodning program och börja kodning.
Först definiera de nödvändiga komponenter och globala variabler.
#define echoPin 7
#define trigPin 8
#define LEDPin 13
#include
#include "rgb_lcd.h"
#include
CONST int chipSelect = 4;
rgb_lcd lcd;
CONST int colorR = 255;
CONST int colorG = 255;
CONST int colorB = 255;
int maximumRange = 400.
int minimumRange = 0;
lång varaktighet, avstånd;
CONST int pinButton = 3;
Börja sedan med ogiltiga inställningar.
Öppna följetong med Serial.begin(115200); och LCD och färger. Ange sedan Trigger och echo pin avstånd censuren. Slutligen Välj SD-kort för att spara data.
void setup() {
Serial.BEGIN (115200);
pinMode (pinButton, ingång);
LCD.BEGIN (16, 2);
lcd.setRGB (colorR, colorG, colorB);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode (LEDPin, OUTPUT);
Serial.Print ("börja skriva till kortet.");
IF (!. SD.begin(chipSelect)) {
Serial.println ("No eller misslyckande");
hemkomst.
}
Serial.println ("kort hittade");
}
Sedan börja arbeta med ogiltig loop.
Detta är huvudprogrammet som kommer slingan till oändlighet.
Trigger pin skickar Ultraljudet och ljudet returneras till echo stift. Detta kan beräknas med hjälp av ljudets hastighet. Avståndet = varaktighet/58,2.
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
Beräkna avstånd baserat på som rusas av solitt
avståndet = varaktighet/58,2;
LCD.Clear();
Om avståndet är utanför intervallet kommer att programmet skriva "utanför intervallet" till LCD och seriell bildskärmen
Annars kommer det beräkna avståndet varje 150 ms och skriva ut den.
om (avstånd > = maximumRange || avstånd < = minimumRange) {
Serial.println ("out of range");
lcd.setCursor(0,0);
LCD.Print ("out of range");
digitalWrite (LEDPin, hög);
}
annat {
Serial.println(Distance);
LCD.Print(Distance);
lcd.setCursor(3,0);
LCD.Print("cm");
digitalWrite (LEDPin, låg);
}
Om knappen trycks kommer att programmet öppna SD-kortet och söka den Distance.txt filen och spara det nuvarande avståndet till loggen. Detta kan ses senare på en PC.
Kommandot kommer att också vända displayen Green i 2 sekunder och Visa sparad avståndet.
När 2 sekunder görs fortsätter programmet dess huvuduppgift. Mätning av avstånd.
IF(digitalRead(pinButton))
{
Fil dataFile = SD.open ("Distance.txt", FILE_WRITE);
CONST int colorR = 0;
CONST int colorG = 255;
CONST int colorB = 0;
om (dataFile) {
dataFile.println(distance);
dataFile.close();
lcd.setCursor(0,1);
LCD.Print ("sparade till SD-kort.");
Serial.println ("sparas till SD-kort.");
lcd.setRGB (colorR, colorG, colorB);
Delay(2000);
CONST int colorR = 255;
CONST int colorG = 255;
CONST int colorB = 255;
lcd.setRGB (colorR, colorG, colorB);
}
}
Delay(150);
}