Stap 2: Code
Hier is de code die we samengesteld. De oorspronkelijke code, die werkt als u alleen wilt bouwen van een nutteloze doos, en niet een die Tweets, vindt u op de oorspronkelijke Instructable (link is in de intro). Houd in gedachten dat ik nooit volledig kunnen testen van deze code, zoals Twitter hield me vergrendeling uit was. Bedenk ook, dat deze code vereist een 1Sheeld te sturen tweets.
#include
Const int buttonPin = 2;
int buttonState = 0;
Servo myservo; maken van servo-object om te bepalen van een servo
maximaal acht servo-objecten kan worden gemaakt
int pos; variabele op te slaan van de servo positie
lange timeDelay;
#define CUSTOM_SETTINGS #define INCLUDE_TWITTER_SHIELD
/ * 1Sheeld bibliotheek. * / #include
/ * Een naam voor de knop op pin 12. *
* Een naam voor de LED op pin 13. * / int ledPin = 13;
VOID Setup
{/ * Start communicatie. * / OneSheeld.begin(); / * de pincode van de knop instellen als input. * / pinMode (buttonPin, INPUT); / * de LED-pincode instellen als output. * / pinMode (ledPin, OUTPUT);
pinMode (buttonPin, INPUT);
myservo.attach(9); de servo op pin 9 hecht aan de servo-object
}
void loop
{
/ * Controleer altijd de status van de knop. * / if (digitalRead(buttonPin) == HIGH) {/ * zet op de LED. * / digitalWrite (ledPin, hoge);
int rndnum; rndnum = rand () % 11;
schakelaar (rndnum) {case 1: Twitter.tweet ("test 1 tweet"); break; case 2: Twitter.tweet ("test tweet 2"); break; case 3: Twitter.tweet ("test tweet 3"); break; case 4: Twitter.tweet ("test tweet 4"); break; case 5: Twitter.tweet ("test tweet 5"); break; case 6: Twitter.tweet ("test tweet 6"); break; case 7: Twitter.tweet ("test tweet 7"); break; case 8: Twitter.tweet ("test tweet 8"); break; case 9: Twitter.tweet ("test tweet 9"); break; case 10 : Twitter.tweet("test tweet 10"); breken; geval van 0: Twitter.tweet ("test tweet 11"); breken; }
OneSheeld.delay(300); } else {/ * uitschakelen van de LED. * / digitalWrite (ledPin, laag);}
buttonState = digitalRead(buttonPin); Lees de positie van de knop
Als (buttonState == HIGH) {}
voor (pos = myservo.read(); pos > = 20; pos-= 1) {/ / gaat van 90 graden tot 20 graden in 1 stap
myservo.write(POS); vertellen van de servo naar positie in variabele 'ONpos'
timeDelay = willekeurige (15, 30);
delay(15); Randomize wachttijd voor de servo te bereiken de positie
}
}
else {}
timeDelay = willekeurige (1, 4);
voor (pos = myservo.read(); pos < = 90; pos += timeDelay) {/ / gaat van 20 graden tot 90 graden in 1 stap
myservo.write(POS); vertellen van de servo naar positie in variabele 'OFFpos'
delay(15); Randomize wachttijd voor de servo te bereiken de positie
}
}
}