Lärdomar tag byggnaden en värdelös låda med hjälp av en Arduino och en Instructable (2 / 5 steg)
Steg 2: kod
Här är koden vi samlat. Den ursprungliga koden, vilket fungerar om du bara vill bygga en värdelös och inte en som Tweets, kan hittas på den ursprungliga Instructable (länken är i introt). Tänk på att jag aldrig var fullt kapabla att testa denna kod som Twitter höll låsa mig ut. Kom också ihåg, att här koden kräver en 1Sheeld att skicka tweets.
#include
CONST int buttonPin = 2;
int buttonState = 0;
Servo myservo; skapa objekt för att styra en servo servo
maximalt åtta servo objekt kan skapas
int pos; variabel att lagra servo position
lång timeDelay;
#define CUSTOM_SETTINGS #define INCLUDE_TWITTER_SHIELD
/ * Inkluderar 1Sheeld bibliotek. * / #include
/ * Ett namn för knappen på stift 12. *
* Ett namn för LED på stift 13. * / int ledPin = 13.
void setup()
{/ * Starta kommunikation. * / OneSheeld.begin(); / * ange knappen pin som indata. * / pinMode (buttonPin, ingång); / * ange LED stift som utdata. * / pinMode (ledPin, produktionen);
pinMode (buttonPin, ingång);
myservo.attach(9); tillmäter objektet servo servo på pin 9
}
void loop()
{
/ * Kontrollera alltid knappen staten. * / om (digitalRead(buttonPin) == hög) {/ * aktivera LED. * / digitalWrite (ledPin, hög);
int rndnum; rndnum = rand () % 11.
växel (rndnum) {mål 1: Twitter.tweet ("testa tweet 1"), paus, fall 2: Twitter.tweet ("testa tweet 2"), paus, fall 3: Twitter.tweet ("testa tweet 3"), paus, fall 4: Twitter.tweet ("testa tweet 4"), paus, ärende 5: Twitter.tweet ("testa tweet 5"), paus, fall 6: Twitter.tweet ("testa tweet 6"), paus, ärende 7: Twitter.tweet ("testa tweet 7"), paus, ärende 8: Twitter.tweet ("testa tweet 8"), paus, ärende 9: Twitter.tweet ("testa tweet 9"), paus, ärende 10 : Twitter.tweet("test tweet 10"); bryta; fall 0: Twitter.tweet ("testa tweet 11"); bryta; }
OneSheeld.delay(300); } annat {/ * inaktivera LED. * / digitalWrite (ledPin, låg);}
buttonState = digitalRead(buttonPin); Läs den knapp positionen
om (buttonState == hög) {
för (pos = myservo.read(); pos > = 20; pos-= 1) {/ / går från 90 grader till 20 grader i 1 steg
myservo.write(POS); berätta servo gå till position i variabeln "ONpos"
timeDelay = random (15, 30);
Delay(15); randomize väntetiden för servo att nå ställning
}
}
annat {
timeDelay = random (1, 4);
för (pos = myservo.read(); pos < = 90; pos += timeDelay) {/ / går från 20 grader till 90 grader i 1 steg
myservo.write(POS); berätta servo gå till position i variabeln "OFFpos"
Delay(15); randomize väntetiden för servo att nå ställning
}
}
}