Étape 3: codage
Et c’est le code que nous permettant de contrôler le treuil. Vous pouvez le trouver aussi ici :
https://github.com/openMolmol/hack-acmotor-with-Relay-and-Arduino
le code inclus un retard selon le facteur de marche du moteur soit 25 %. Cela signifie que si vous l’utilisez pendant 30 secondes, vous aurez à attendre environ 2 minutes pour utiliser à nouveau pour éviter d’endommager le moteur.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Nous utilisons deux relais d’état solide pour contrôler le moteur à courant alternatif avec un Arduino Uno
Fixer 200 résistance k entre les deux bornes sur le condensateur du moteur
Permettre au moteur d’avoir un 10 secondes de temps de fonctionnement chaque fois
le code est basé sur un moteur à courant alternatif avec facteur de marche 25 %
Les broches de relais se connecter à d’arduino digital PWM Pin 10 et 11, terre à terre
Circuit SSR développé avec Eric Rosenthal
yesyesno LLC Jan, 17, 2013 mailto : molmol
int PinDown = 6 ; Choisissez la broche pour le relais
int PinUp = 5 ; Choisissez la broche pour le relais
int nSecondsMoving = 10 ; unité en secondes ; N’allez pas moins de 10 secondes
int nSecondsMovingUp = nSecondsMoving * 1.2 ; le moteur va jusqu'à 1,2 fois plus long qu’il tombe en panne
int nSecondsPausedMin = nSecondsMoving * 4 ;
Il s’agit de nSecondsMoving * 4--il faut attendre 2 minutes si nous avons déménagé pendant 30 secondes
int nSecondsPausedMax = nSecondsMoving * 4 + 10 ;
Il s’agit de nSecondMovind * 4 + quelque chose à ajouter pour le hasard, c’est à dire 10 secondes...
firstTime booléenne ;
void setup() {}
Serial.Begin(9600) ;
pinMode (PinUp, sortie) ; déclarer relayPin comme sortie
moteur restera premier
pinMode (PinDown, sortie) ; déclarer relayPin comme sortie
firstTime = true ;
}
void loop() {}
digitalWrite (PinUp, faible) ; désactiver le relais
digitalWrite (PinDown, basse) ; désactiver le relais
Si (firstTime == true) {}
retard (1 * 1000) ; 1 seconde de retard sur le premier démarrage
} else {}
retard (aléatoire (nSecondsPausedMin, nSecondsPausedMax) * 1000) ; délai aléatoire entre chaque opération
}
digitalWrite (PinUp, élevé) ; Mettez en marche relais
Delay(nSecondsMovingUp*1000) ;
digitalWrite (PinUp, faible) ; désactiver le relais
retard (aléatoire (nSecondsPausedMin, nSecondsPausedMax) * 1000) ;
digitalWrite (PinDown, élevé) ; Mettez en marche relais
Delay(nSecondsMoving * 1000) ;
digitalWrite (PinDown, basse) ; désactiver le relais
firstTime = false ;
fin vers le bas
}