×

Ultraäänianturi ja kirjastojen käyttö

Ultraäänianturi

Hae ensin netistä kytkentöjä hakusanalla HC-SR04, eli komponentista löytyvästä tyyppimerkinnällä.

Hakua voi täsmentää lisäämällä toiseksi hakusanaksi arduino.

Tutkitaan komponetin jalkoja.

Mitä tarkoittavat merkinnät Vcc, Trig, Echo ja Gnd?

 

Kirjaston lisäys

 

Harjoitus 1:

http://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/

A) Kytke sensori ohjeen mukaan ja kopioi ensimmäinen koodinpätkä, joka ohjaa sensoria suoraan.

B) Seuraavaksi otetaan käyttöön sensorille tehty kirjasto NewPing

 

Esimerkkikoodi 1

 
#include  // otetaan kirjasto NewPing.h käyttöön
NewPing sonar(6,7,200); // Alustetaan NewPing
//pinni6 trigger output, pinni7 echo input, maksimietäisyys 200cm
 
void setup() {
Serial.begin(9600); // Avataan sarjaportti
}
 
void loop() {
delay(1000); // Etäisyyden mittaus sekunnin välein
int etaisyys = sonar.ping_cm(); // Mitataan etäisyys senttimetreinä
Serial.print("Etäisyys: "); //Tulostetaan näytölle
Serial.print(etaisyys);
Serial.println(" cm");
}

 

 

 

Harjoitus 2:

Toinen Yksinkertainen esimerkki löytyy osoitteesta http://vinduino.blogspot.fi/2013/07/hc-sr04-ultrasonic-sensor.html 

Tee kytkentä ja hae koodi ja aja se.

Tässä esimerkissä kytketään lisäksi summeri pinniin 7 (muista maa)

1. Muuta ohjelmaa, niin, että saat

a) etäisyydet myös tuumina.

b) etäisyyden myös millisekunteina.

 

Harjoitus 3:

OHJELMOINTIHARJOITUS

Suunnitelmaa pareittain tai pienissä ryhmissä ohjelma, joka hyödyntää etäisyysanturia, potentiometriä, ledejä ja sarjaliikennettä tietokoneelle päin.

Laitteen toiminta olisi seuraava:

Se mittaa eäisyyttä ja ilmoittaa kahden ledin avulla, kun etäisyys on alle tai yli  potetiometrin avulla asetetun rajan.

-Käytä lähtökohtana harjoituksen 2 kytkentää ja koodia.

-Lisää ensin potentiometrin lukeminen ja sen arvon mappaus välille 0-50. (ks. esimerkit http://arduino.cc/en/Tutorial/AnalogReadSerial ja http://arduino.cc/en/Tutorial/AnalogInOutSerial )

-Lisää ohjelmaan se, että se tuostaa Serial Monitorille myös raja-arvon

-Lisää kytkentään kaksi lediä. Toinen esim pin 7 ja toinen pin13

-Tee if-else rakenne, joka sytyttää toisen ledin, kun etäysyys on alle rajan ja toisen, kun etäisyys on yli rajan.

 

Esimerkkikoodi harjoitus 3:seen

#include

#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
pinMode(7,OUTPUT);
pinMode(13,OUTPUT);
}

void loop() {
int raja = map(analogRead(A0), 0, 1023, 0, 50); // Reads potentiometer value from pin A0 (0-1025) and maps it between 0-50
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
int distance = sonar.ping_cm(); // Send ping, get ping time in microseconds (uS).
Serial.print("Ping: ");
Serial.print(distance); // Convert ping time to distance in cm and print result (0 = outside set distance range)
Serial.println("cm");
Serial.print("Raja-arvo: ");
Serial.print(raja);
Serial.println("cm");
if (distance < raja)
{
digitalWrite(7, HIGH);
digitalWrite(13, LOW);
}else {
digitalWrite(13, HIGH);
digitalWrite(7, LOW);
}
}

Se löytyy osoitteesta https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home

Asennetaan se ohjeen mukaan http://arduino.cc/en/Guide/Libraries

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Opetellaan Arduinon ohjelmoinita ja peruskytkentöjä