Étape 2: Code d’Arduino
Pour programmer le mini, vous avez besoin d’une clé usb au module de la série.
/*
Projet d’ascenseur avec arduino pro mini 328 5v 8mhz - il s’agit d’un projet d’ascenseur simple à l’aide d’un moteur à courant alternatif monophasé. -Il y a 3 étages et un bouton est placé à chaque étage et sont reliés en paraller avec 3 boutons à l’intérieur de l’ascenseur. -3 interrupteurs de proximité sont attachés à chaque étage pour indiquer où l’ascenseur est et de l’arrêter. -Un vibreur est connecté pour mettre en garde pour le mouvement ou arrêt de l’alarme à l’intérieur de l’ascenseur est fixé directement sur le bouton de réinitialisation. code par : Fanis Katmadas site:oramasolutions.com fanisk * /
const int ETAGE1 = 7; //proximity interrupteur raccordé sur ETAGE1 const int floor2 = 6; //proximity interrupteur raccordé sur floor2 const int floor3 = 5; //proximity interrupteur raccordé sur floor3 const int callbutton1 = 4; //push bouton sur le floor1 et en paraller le bouton pour 1er étage dans l’ascenseur const int callbutton2 = 3; //push bouton sur le floor2 et en paraller le bouton d’étage 2 dans l’ascenseur const int callbutton3 = 2; bouton //push sur le floor3 et en paraller le bouton d’étage 3 dans l’ascenseur const int relayup = 12 ; //the relais qui pousse vers le haut de l’ascenseur const int relaydown = 10 ; //the relais qui pousse vers le bas de l’avertisseur sonore du ascenseur const int = 11 ; //a mouvement de sonnerie d’avertissement ou d’alarme arrêter const int poweron = 13 ;
variables vont changer : int callelevator1 = 0 ; variable pour la lecture de l’état de bouton poussoir des planchers int callelevator2 = 0 ; variable pour la lecture de l’état de bouton poussoir des planchers int callelevator3 = 0 ; variable pour la lecture de l’état de bouton poussoir des planchers int floor1sense = 0 ; variable pour la lecture de l’état de la proximité de la planchers int floor2sense = 0 ; variable pour la lecture de l’état de la proximité de la planchers int floor3sense = 0 ; variable pour la lecture de l’état de la proximité des planchers
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset : void setup()
{/ / initialiser le broches numériques entrées. pinMode (ETAGE1, entrée); pinMode (floor2, INPUT); pinMode (floor3, INPUT); pinMode (callbutton1, INPUT); pinMode (callbutton2, INPUT); pinMode (callbutton3, entrée) ;
initialiser les sorties de broches numériques. pinMode (relayup, sortie) ; pinMode (relaydown, sortie) ; pinMode (vibreur, sortie) ; }
la routine de la boucle s’exécute maintes et maintes fois pour toujours : void loop()
{digitalWrite (poweron, HIGH); / / lecture de l’état de la valeur de boutons : callelevator1 = digitalRead(callbutton1) ; callelevator2 = digitalRead(callbutton2) ; callelevator3 = digitalRead(callbutton3); / / lecture de l’état de la valeur de proximité : floor1sense = digitalRead(floor1) ; floor2sense = digitalRead(floor2) ; floor3sense = digitalRead(floor3) ;
Commencez par vérifier les touches de 3 appel. Nous avons lu l’entrée, et si nous avons signal nous attendre la sortie avant de commencer. après la sortie, une pause d’une seconde est ajoutée avant le début du mouvement de la gouverne de profondeur si (callelevator1 == haut) / / si vous appuyez sur le bouton d’appel 1 étage {retard (200); //software debounce du bouton while(callelevator1 == HIGH) {callelevator1 = digitalRead (callbutton1); //check la valeur du bouton nouveau retard (10); //keep fonctionne bien} //wait pour la relese du bouton continuer delay(1000) ; floor1function (); //go pour le fuction 1er étage de l’ascenseur} d’autre if(callelevator2 == HIGH) / / si le étage 2 appel touche {delay(200) ; //software debounce du bouton while(callelevator2 == HIGH) {callelevator2 = digitalRead (callbutton2); //check la valeur du bouton nouveau retard (10); //keep fonctionne bien} //wait pour la relese du bouton continuer delay(1000) ; floor2function (); //go pour le fuction étage 2 de l’ascenseur} else if(callelevator3 == HIGH) / / si vous appuyez sur le bouton d’appel 1 étage {delay(200) ; //software debounce du bouton while(callelevator3 == HIGH) {callelevator3 = digitalRead (callbutton3); //check la valeur le bouton nouveau retard (10); //keep fonctionne bien} //wait pour la relese du bouton continuer delay(1000) ; floor3function (); //go pour le fuction étage 3 de l’ascenseur} digitalWrite (relayup, basse) ; garder le relais pour up motion inactifs digitalWrite (relaydown, basse) ; garder le relais pour vers le bas mouvement inactif digitalWrite (sonnerie, LOW); //keep le retard tout à fait buzzer (10); //a peu retardent juste pour continuer à fonctionner sans à-coup}
void floor1function() {si (floor1sense! = haut) / / vérifier le capteur de proximité du premier étage pour voir si l’ascenseur est là {//if l’ascenseur n’est pas là l’appellent tout en (floor1sense == faible) //check que la proximité du premier étage est faible //the moteur commence et s’arrête quand la proximité du sol approprié donner le signal {digitalWrite (relaydown, HIGH); //drive l’ascenseur vers le bas digitalWrite (sonnerie HIGH); //some le bruit dans le floor1sense mic = digitalRead(floor1) ; retard (10); //a peu retardent pour continuer à fonctionner sans à-coup la routine}}}
void floor2function() {}
if(floor3sense == High) / / vérifier le capteur de proximité du troisième étage pour voir si l’ascenseur est là {//if l’ascenseur est là appelez-le tandis que (floor2sense == faible) //the moteur commence et s’arrête quand la proximité du sol approprié donner le signal {digitalWrite (relaydown, HIGH); //drive l’ascenseur vers le bas digitalWrite (sonnerie, HIGH); //some le bruit dans le floor2sense mic = digitalRead(floor2) ; retard (10); //a peu retardent pour continuer à fonctionner sans à-coup la routine}} d’autre if(floor1sense == HIGH) / / vérifier le capteur de proximité de la premier étage pour voir si l’ascenseur est là {//if l’ascenseur est là appelez-le tout en (floor2sense == faible) moteur //the commence et s’arrête quand la proximité du sol approprié donner le signal {digitalWrite (relayup, HIGH); //drive l’ascenseur vers le haut digitalWrite (sonnerie, HIGH); //some le bruit dans le floor2sense mic = digitalRead(floor2) ; retard (10); //a peu retardent pour continuer à fonctionner sans à-coup la routine}
} }
void floor3function() {si (floor2sense == haute || floor1sense == haute) / / vérifier le capteur de proximité du premier et deuxième étage pour voir si l’ascenseur est là {//if l’ascenseur est là appelez-le tandis que (floor3sense == faible) //the moteur commence et s’arrête quand la proximité du sol approprié donner le signal {digitalWrite (relayup, HIGH); //drive l’ascenseur vers le haut digitalWrite (sonnerie, HIGH); //some le bruit dans le floor3sense mic = digitalRead(floor3) ; retard (10); //a peu retardent pour continuer à fonctionner sans à-coup la routine}
} }