19. 1Sheeld servo accelerometer

Mål: att kunna styra positionen hos en servo genom att luta telefonen fram och tillbaka.

Koppling: Om servon är liten kan Arduinon klara av strömförsörjningen via datorns USB-port. Annars kan det löna sig att koppla ett 9V batteri till Arduinon eller använda en helt egen strömkälla till servons +5V (röd kabel) och GND (svart/brun).

Teori: Telefonen har en inbyggd accelerometer som läser förändringar i x,y och z planet. Om du lutar telefonen åt olika håll så kommer värden att ligga mellan -10 och 10 (har att göra med tyngdkraften). Dessa värden skalas om till ett intervall mellan 0 -180 som i sin tur styr servons position.


Fritzing kopplingsschema

1sheeld servo


Arduino kod

#define CUSTOM_SETTINGS
#define INCLUDE_ACCELEROMETER_SENSOR_SHIELD

#include <OneSheeld.h>
#include <Servo.h>

Servo myservo;

void setup() 
{
  OneSheeld.begin();
  myservo.attach(10); 
}

void loop() 
{
  int value = AccelerometerSensor.getX();
  int x = map(value, -10, 10, 0, 180);
  myservo.write(x);  
}

Leave a comment