Stap 3: Aansluiten en codering.
Verbinding maken met de stukken op het bord zoals in de afbeelding en het bord sluit aan op de PC.
Open uw codering programma en beginnen met coderen.
Definieer eerst de benodigde onderdelen en globale variabelen.
#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; long duration, distance; const int pinButton = 3;
Start met ongeldig setup.
Open serial met Serial.begin(115200); en stel het LCD-scherm en de kleuren. Vervolgens stelt u de Trigger en echo pin voor de censor van de afstand. Tot slot Selecteer de SD-kaart voor het opslaan van gegevens.
void setup() { Serial.begin (115200); pinMode(pinButton, INPUT); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); Serial.print("Start write to card."); if (!SD.begin(chipSelect)) { Serial.println("No card or failure"); return; } Serial.println("Card found"); }
Dan gaan werken met ongeldig lus.
Dit is het hoofdprogramma dat tot oneindig wordt herhaald.
De trigger-pin stuurt de echografie en het geluid is teruggekeerd naar de echo-pin. Dit kan worden berekend met behulp van de snelheid van het geluid. Afstand = duur/58.2.
digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); //Calculate distance based on speed of sound distance = duration/58.2; lcd.clear();
Als de afstand is buiten het bereik van die het programma "buiten het bereik" naar de LCD en seriële monitor schrijven zal
Anders zal het berekenen van de afstand elke 150 ms en uitprinten.
if (distance >= maximumRange || distance <= minimumRange){ Serial.println("Out of range"); lcd.setCursor(0,0); lcd.print("Out of range"); digitalWrite(LEDPin, HIGH); } else { Serial.println(distance); lcd.print(distance); lcd.setCursor(3,0); lcd.print("Cm"); digitalWrite(LEDPin, LOW); }
Als de knop wordt ingedrukt het programma opent de SD-kaart en zoek de Distance.txt bestand en opslaan van de huidige afstand naar het logboek. Dit kan later worden bekeken op een PC.
De opdracht zal ook zet de weergave groen voor 2 seconden en Toon de opgeslagen afstand.
Als 2 seconden klaar bent blijft het programma haar belangrijkste taak. Het meten van afstand.
if(digitalRead(pinButton)) { File dataFile = SD.open("Distance.txt", FILE_WRITE); const int colorR = 0; const int colorG = 255; const int colorB = 0; if (dataFile) { dataFile.println(distance); dataFile.close(); lcd.setCursor(0,1); lcd.print("Saved to SD card."); Serial.println("saved to SD card."); 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); }