Stap 3: codering
En dit is de code die we gebruikt om te bepalen van de lier. U vindt het ook hier:
https://github.com/openMolmol/Hack-acmotor-with-relay-and-Arduino
de code opgenomen een vertraging volgens het pulserend sproeien van de motor dat is 25%. Dit betekent dat als je het gebruiken voor 30 seconden zul je ongeveer 2 minuten wachten om het te gebruiken opnieuw om te voorkomen beschadiging van de motor.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
We zijn met behulp van twee solid state relais om de AC-motor met een Arduino Uno controle
Koppelen van 200 k ohm weerstand tussen beide terminals op de condensator van de motor
Laat de motor te hebben van een 10 seconden van operatie tijd elke keer
de code is gebaseerd op een AC-motor met 25% taakcyclus
De relay-pinnen sluit aan op arduino van digitale PWM Pin 10 en 11, naar de grond
SSR circuit ontwikkeld met Eric Rosenthal
yesyesno LLC Jan, 17, 2013 mailto: molmol
int PinDown = 6; Kies de pin voor de estafette
int EE = 5; Kies de pin voor de estafette
int nSecondsMoving = 10; eenheid in seconden; Ga niet minder dan 10 seconden
int nSecondsMovingUp = nSecondsMoving * 1.2; de motor gaat van 1.2 keer langer dan het daalt
int nSecondsPausedMin = nSecondsMoving * 4;
Dit is nSecondsMoving * 4--we moeten wachten van 2 minuten, als we verhuisd bent gedurende 30 seconden
int nSecondsPausedMax = nSecondsMoving * 4 + 10;
Dit is nSecondMovind * 4 + iets toe te voegen voor willekeur, dwz 10 seconden...
Booleaanse firstTime;
VOID Setup {}
Serial.begin(9600);
pinMode (EE, uitvoer); relayPin declareren als uitvoer
motor zal gaan eerst
pinMode (PinDown, uitvoer); relayPin declareren als uitvoer
firstTime = true;
}
void loop {}
digitalWrite (EE, laag); relay uitschakelen
digitalWrite (PinDown, laag); relay uitschakelen
Als (firstTime == true) {}
vertraging (1 * 1000); 1 seconde vertraging op eerste start
} else {}
vertraging (willekeurige (nSecondsPausedMin, nSecondsPausedMax) * 1000); willekeurige vertraging tussen elke bewerking
}
digitalWrite (EE, hoge); Draai relay ON
delay(nSecondsMovingUp*1000);
digitalWrite (EE, laag); relay uitschakelen
vertraging (willekeurige (nSecondsPausedMin, nSecondsPausedMax) * 1000);
digitalWrite (PinDown, hoge); Draai relay ON
delay(nSecondsMoving * 1000);
digitalWrite (PinDown, laag); relay uitschakelen
firstTime = false;
einde down
}