Sensorer till Arduino
Lektion 6 - Sensorer
Den här sidan är inte klar än.
Den kommer att handla om sensorer för att mäta avstånd med hjälp av IR och ultraljud.
Man kan även mäta temperatur, färg, acceleration, mm.
Alla sensorer som ger en spänning kan i princip användas eftersom ni har lärt er att läsa in en analog spänning med ReadAnalogVoltage.
Det som finns som ni kan prova är:
Avståndssensor ultraljud
Vi har två sensorer för att mäta avstånd med ultraljud.
De kommer från Kjell.com och på deras hemsida finns kod för att köra sensorn med Arduino. Det är bara att testa, (Koden är 87891)
Du behöver : En Arduino Uno, en avståndssensor, 4 koppartrådar och ett kretsbord.
Du kan hitta koden för att mäta avståndet : här. Här kan du även hitta hur du skall koppla in sensorn för att allt skall fungera. När du har koden körs, bör du kunna se värdena under 'Tools' >' Serial monitor', som öppnas i ett nytt fönster.
Exempelkoden för avståndssensorn
int inputPin=2; //ECHO pin int outputPin=4; //TRIG pin void setup() { Serial.begin(9600); pinMode(inputPin, INPUT); pinMode(outputPin, OUTPUT); } void loop() { digitalWrite(outputPin, HIGH); //Trigger ultrasonic detection delayMicroseconds(10); digitalWrite(outputPin, LOW); int distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection distance= distance/58; //Calculate distance Serial.println(distance); //Print distance delay(100); }
Avståndssensor med blinkning
Vi prövade att kombinera avståndsmätning med blink-programmet. Vi skrev in att if(distance<10) skulle göra så att blink-koden gick igång, fungerade allt. Koden var alltså mycket simpel och lik den vi lärt oss med javascript. Den kompletta koden var alltså :
int inputPin=9; //ECHO pin int outputPin=10; //TRIG pin void setup() { Serial.begin(9600); pinMode(inputPin, INPUT); pinMode(outputPin, OUTPUT); pinMode(13, OUTPUT); } void loop() { digitalWrite(outputPin, HIGH); //Trigger ultrasonic detection delayMicroseconds(10); digitalWrite(outputPin, LOW); int distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection distance= distance/58; //Calculate distance Serial.println(distance); //Print distance delay(100); if(distance<10) { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW } }