Gör en Internet ansluten älsklings-förlagematare (2 / 2 steg)
Steg 2: Att göra av
Förklaringen av koden görs helt inne koden som kommentarer. Oavsett tvivel du ha, fråga gärna.
#include < Wire.h >
#include < Mesh.h > //This huvudet är för endast Aquila-funktioner
#include < AquilaProtocol.h > //This huvudet är för Aquila-bara funktioner < br >
#include < Servo.h > //Header behövs för att använda servo funktioner
Servo. Här, vi namn servo "ett", så vi kan kalla det.
int pos = 0;
bool isClosed = sant; Denna variabel är för växla funktion bara.
Detta gäller för nästa 3 funktioner:
a.write(N) det står att när funktionen börjar, servo flyttar fram positionen N (att veta att de kan flytta från 0 till 180 grader).
Efter detta, kommer att det vänta (fördröjning) M millisekunder; 1000ms = 1 sekund.
Efter förseningar, det kommer procced att skriva en ny position till servo, i detta fall är 9, för detta är klass där detta servo i synnerhet kommer inte tvinga (detta varierar bland servon, de täcker inte deras hela 180 grader, du kommer att höra en buzz om du över sin gräns).
bool serve1 (uint8_t param, bool gotParam)
{
a.write(80);
Delay(1000);
a.write(9);
}
bool serve2 (uint8_t param, bool gotParam)
{
a.write(50);
Delay(1000);
a.write(9);
}
bool serve3 (uint8_t param, bool gotParam)
{
a.write(40);
Delay(650);
a.write(9);
}
Toggle fuction bygger på de tidigare funktionerna. Det "kommer att undra" om servo öppnas eller stängs. Att veta detta, fortsätter att stänga eller öppna, därför.
bool växla (uint8_t param, bool gotParam)
{
om (isClosed)
{
isClosed = false;
a.write(80);
}
annat
{
isClosed = sant;
a.write(9);
}
}
void setup()
{
a.attach(9); Servomotor ansluten till Altairs pin 9.
a.write(9); Servo stoppar vibrerande/surrande på 9º, så det är inledande ståndpunkt är 9 stängas. (Det är slump att pin och grader är samma).
Mesh.BEGIN();
Aquila.BEGIN();
Aquila.setClass("mx.makerlab.test");
Aquila.setName("Feeder");
Texten mellan citat är som visas på navet som en knapp.
Direkt efter den citerade texten är que fuction som kommer att anropas när du klickar på knappen på navet. Detta är en endast Aquila-funktion
Aquila.addAction ("tjäna en hel del", serve1);
Aquila.addAction ("Tjäna hälften", serve2);
Aquila.addAction ("Tjäna lite", serve3);
Aquila.addAction ("Växla", växla);
Mesh.announce(hub); Denna linje behövs för för denna Aquila visas på navet
}
void loop()
{
Mesh.loop();
Aquila.loop();
}