woensdag 11 juni 2014

Arduino

Om een werkend prottype te kunnen bouwen moet er een Arduino systeem in de hovercraft verwerkt zitten. Dit systeem moet alleen geprogrammeerd worden. Hiervoor heb ik mij opgegeven als slachtoffer. Ik zag hier best tegen op, anders noem ik mezelf ook geen slachtoffer. Samen met Stan en Roel uit een andere groep, ben ik hiervoor gaan zitten. Thuis had ik de dag daarvoor al veel onderzoek gedaan en een code gevonden om onze ultrasone sensor te kunnen laten werken en een afstand uit te kunnen lezen. Samen met Stan en Roel hebben we hierin een servo geprogrammeerd die een kwartslag draait wanneer de sensor een object leest die minder dan 15 cm van de sensor afstaat. Ik heb door het schrijven van deze code erg veel geleerd over programmeren en door deze oefening heb ik een zeer goede voorbereiding gehad op het tentamen Arduino.

Hieronder kan je de code lezen.



#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
#define led3 8
#include <Servo.h>
Servo servo;

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  servo.attach (9);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 4) {  
    digitalWrite(led,HIGH); 
  digitalWrite(led2,LOW);
}
  else {
    digitalWrite(led,HIGH);
   digitalWrite(led2,LOW);
  }
  if (distance >= 30 || distance <= 0)
  {
    digitalWrite(led, LOW);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW);
    Serial.println("Out of range");
    servo.write (92);
    delay(100);
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
    servo.write (92);
    delay(10);
    servo.write (94);
    delay (2200);
    digitalWrite(led, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, HIGH);
    servo.write (92);
    delay (15000);
  }
  delay(10);
}

Geen opmerkingen:

Een reactie posten