Afstandssensor en OLED
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps en online services
|
Over dit project
OLED-scherm gebruiken
Hier heb je mijn vorige tutorial erover:
#includes
en#defines
, voordat usetup():
run uitvoert
#include //we hebben al die vervelende bibliotheken nodig voor OLED#include #include #include #define OLED_RESET 4 // dit is de reset-pin, IK GEBRUIK GEEN ITadafruit_SSD1306-display (OLED_RESET);
- In de
setup()
functie:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer met de I2C-addr 0x3C (128x64) display.clearDisplay(); // wis het scherm voor de start
- In
loop()
functie:
display.setCursor(22,20); //x,y coördineert display.setTextSize (3); //grootte van de tekst display.setTextColor (WHITE); // als je ZWART schrijft, wist het dingen display.println(distance); // print onze variabele display.setCursor (85,20); // stel grootte in, druk de eenheden af (cm/in) display.setTextSize (3); #ifdef CommonSenseMetricSystem//if theres#define CommonSenseMetricSystem display.println("cm"); //print "cm" in oled #endif #ifdef ImperialNonsenseSystem//if there's #define ImperialNonsenseSystem display.println("in"); //print "in" in oled #endif display.display(); // je moet al die datavertraging (500) daadwerkelijk weergeven; //wacht!, menselijke snelheid display.clearDisplay(); // wis het scherm zwart
Hoe HC-SR04 ultrasoon bereik te gebruiken
Hier heb je de datasheet, de HC-module zendt een reeks pulsen uit en meet vervolgens de tijd die de echo van de echo nodig heeft om terug te keren naar zijn oorspronkelijke plaats.
- Maak een puls voor HC-trigger, de HC zal een pulsstoot doen:
lange duur, afstand; //onze geliefde variabelen digitalWrite (trigPin, LOW); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite(trigPin, HOOG); vertraging Microseconden (10); digitalWrite(trigPin, LAAG);
- PulseIn() is een zelden gebruikte functie, detecteert de lengte van de stap hoog (__----__) of laag (----___---)
We gebruiken #ifdef
om alleen de onderdelen te compileren die we nodig hebben.
duur =pulseIn(echoPin, HOOG); // #ifdef CommonSenseMetricSystem afstand =(duur/2) / 29,1; #endif #ifdef ImperialNonsenseSystem afstand =(duur/2) / 73.914; #endif
- En dit voor het debuggen als je Oled niet werkt:
Serial.println(distance);//debug
Code
- Echo op afstand meten en weergeven
Echo op afstand meten en weergevenArduino
Hoofdcode//CODE DOOR Javier Muñoz Sáez, 05/11/2016 vragen aan [email protected]#include#include #include #include #define CommonSenseMetricSystem//#define ImperialNonsenseSystem#define trigPin 13#define echoPin 12#define OLED_RESET 4Adafruit_SSD1306 display(OLED_RESET);void setup() { Serial.begin (9600); pinMode (trigPin, UITGANG); pinMode (echoPin, INPUT); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer met de I2C-addr 0x3C (128x64) display.clearDisplay();}void loop() { lange duur, afstand; digitalWrite(trigPin, LAAG); //PULSE ___|---|___ vertragingMicroseconden (2); digitalWrite(trigPin, HOOG); vertraging Microseconden (10); digitalWrite(trigPin, LAAG); duur =pulseIn(echoPin, HOOG); #ifdef CommonSenseMetricSystem afstand =(duur/2) / 29,1; #endif #ifdef ImperialNonsenseSystem afstand =(duur/2) / 73.914; #endif display.setCursor(22,20); //oled-display display.setTextSize (3); display.setTextColor(WIT); display.println(afstand); display.setCursor(85,20); display.setTextSize (3); #ifdef CommonSenseMetricSystem display.println("cm"); #endif #ifdef ImperialNonsenseSystem display.println("in"); #endif display.display(); vertraging (500); display.clearDisplay(); Serial.println(afstand);//debug }
Schema's
Productieproces
- Wat is de werking van een afstandssensor en zijn toepassingen
- Arduino-sensor – Typen en toepassingen
- Werking en toepassingen van vingerafdruksensor
- Werking en toepassingen van de vibratiesensor
- Python- en Raspberry Pi-temperatuursensor
- Raspberry Pi temperatuur- en lichtsensor
- Raspberry Pi-sensor en actuatorbediening
- Aerocultuur met Raspberry Pi en vochtigheidssensor
- Een vochtigheidssensor controleren en kalibreren
- Windows 10 IoT Core en SHT15
- Arduino en OLED-gebaseerde mobiele automaten