#include #include Servo myservo; int pos = 0; void setup() { myservo.attach(D0); Wire.begin(0x8B); // join i2c bus with address #8 Wire.onReceive(receiveEvent); // register event } void loop() { delay(100); } void receiveEvent(int howMany){ while (Wire.available()) { char c = Wire.read(); // Receive a byte decrypt(c); // Decrypt received byte and control servo } } void moveServo(int targetPosition) { int currentPos = myservo.read(); if (currentPos < targetPosition) { for (pos = currentPos; pos <= targetPosition; pos++) { myservo.write(pos); delay(15); } } else { for (pos = currentPos; pos >= targetPosition; pos--) { myservo.write(pos); delay(15); } } } void decrypt(char var) { switch (var) { case 'A': moveServo(0); break; case 'B': moveServo(30); break; case 'C': moveServo(60); break; case 'D': moveServo(120); break; case 'E': moveServo(150); break; case 'F': moveServo(180); break; default: moveServo(90); break; } }