Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h> //biblioteka odpowiedzialna za serwa
- Servo serwomechanizm; //obiekt, dzięki któremu mogę odwołać się do serwa
- byte pozycja = 0; //aktualna pozycja serwa 0-180
- int pozycjaPoprzednia = 0;
- void setup() {
- serwomechanizm.attach(10);//Podłączam serwo do pinu 10
- Serial.begin(9600);//uruchomienie komunikacji przez UART
- }
- void loop() {
- int odczytCzujnika = analogRead(A5);//odczytuję wartość z czujnika
- pozycja = map(odczytCzujnika, 20, 250, 0, 180);//zmieniam ją na pozycję serwa:
- //Pierwszy argument funkcji to wartość odczytu czujnika.
- //Drugi i trzeci argument to wyznaczone doświadczalnie (poprzez zasłanianie i odsłanianie czujnika) minimum i maksimum odczytu fotorezystora.
- //Czwarty i piąty argument funkcji to minimum i maksimum położenia ramienia serwa (które działa tu jako wskazówka zegara odczytu)
- if (abs(pozycja - pozycjaPoprzednia) > 5) {//sprawdzam czy pozycje różnią się o ponad 5 stopni
- serwomechanizm.write(pozycja);//wykonuję ruch
- pozycjaPoprzednia = pozycja;//zapamiętuję aktualną pozycję jako poprzednią
- }
- Serial.print("Odczyt czujnika: ");
- Serial.print(odczytCzujnika);//wysyłam wartość do terminala
- Serial.print(",\t");//tabulator
- Serial.print("pozycja serwa: ");
- Serial.println(pozycja);
- delay(500);//opóźnienie minimum 100ms aby nie uszkodzić serwa
- }
Advertisement
Add Comment
Please, Sign In to add comment