From c2439c8fa1afa4c12dbc8cecefee825c6946e5ee Mon Sep 17 00:00:00 2001 From: KenwoodFox Date: Mon, 28 Jun 2021 01:23:43 -0400 Subject: [PATCH] Copy in example servo code, pwm is way better! --- .../crawler_slave/crawler_slave.ino | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/crawler_software/arduino/crawler_slave/crawler_slave/crawler_slave.ino b/crawler_software/arduino/crawler_slave/crawler_slave/crawler_slave.ino index cd6d265..dd53007 100644 --- a/crawler_software/arduino/crawler_slave/crawler_slave/crawler_slave.ino +++ b/crawler_software/arduino/crawler_slave/crawler_slave/crawler_slave.ino @@ -1,37 +1,31 @@ -/* - Arduino Slave for Raspberry Pi Master - i2c_slave_ard.ino - Connects to Raspberry Pi via I2C - - DroneBot Workshop 2019 - https://dronebotworkshop.com +/* Sweep + by BARRAGAN + This example code is in the public domain. + + modified 8 Nov 2013 + by Scott Fitzgerald + http://www.arduino.cc/en/Tutorial/Sweep */ -// Include the Wire library for I2C -#include +#include -// LED on pin 13 -const int ledPin = 13; +Servo myservo; // create servo object to control a servo +// twelve servo objects can be created on most boards + +int pos = 0; // variable to store the servo position void setup() { - // Join I2C bus as slave with address 8 - Wire.begin(0x8); - - // Call receiveEvent when data received - Wire.onReceive(receiveEvent); - - // Setup pin 13 as output and turn LED off - pinMode(ledPin, OUTPUT); - digitalWrite(ledPin, LOW); + myservo.attach(9); // attaches the servo on pin 9 to the servo object } -// Function that executes whenever data is received from master -void receiveEvent(int howMany) { - while (Wire.available()) { // loop through all but the last - char c = Wire.read(); // receive byte as a character - digitalWrite(ledPin, c); +void loop() { + for (pos = 70; pos <= 130; pos += 1) { // goes from 0 degrees to 180 degrees + // in steps of 1 degree + myservo.write(pos); // tell servo to go to position in variable 'pos' + delay(15); // waits 15ms for the servo to reach the position + } + for (pos = 130; pos >= 70; pos -= 1) { // goes from 180 degrees to 0 degrees + myservo.write(pos); // tell servo to go to position in variable 'pos' + delay(15); // waits 15ms for the servo to reach the position } } -void loop() { - delay(100); -}