Étape 9: Arduino Code
Brochesint dir = 2 ;
puissance int = 3 ;
captor int = 4 ;
Interrupteur Reed
int captorVal = 0 ;
Broche analogique pour lire l’écran vers le bas
int screenDown = 0 ;
int screenDownVal = 0 ;
Broche analogique pour lire l’écran vers le haut
int screenUp = 1 ;
int screenUpVal = 0 ;
String screenState ; État d’écran projecteur
String blindState ; État aveugle
Boolean occupé = false ;
void setup() {}
initialiser des pins
pinMode (alimentation, sortie) ;
pinMode (dir, sortie) ;
pinMode (captor, entrée) ;
Lire la valeur de commutateur de roseau à la configuration
Delay(100) ;
captorVal = digitalRead(captor) ;
Delay(100) ;
La valeur de la blindState sur le programme d’installation
Si (captorVal == faible) {}
blindState = « montée » ;
} else {}
blindState = « down ».
}
Enregistreur
Serial.Begin(9600) ;
}
void loop() {}
Lecture de projecteur écran valeurs
screenDownVal = analogRead(screenDown) ;
screenUpVal = analogRead(screenUp) ;
Si (screenUpVal > 1000 & & screenDownVal > 1000) {}
Serial.println ("module d’écran est OFF!") ;
screenState = « off » ;
} ElseIf (screenUpVal < 200 & & screenDownVal < 200) {}
screenState = « stop » ;
} else if (screenUpVal > 1000 & & screenDownVal < 200) {}
screenState = « montée » ;
} else if (screenDownVal > 1000 & & screenUpVal < 200) {}
screenState = « down ».
}
refreshBlindMotor(screenState) ;
Delay(100) ;
}
void refreshBlindMotor() {}
Serial.println(blindState) ;
Écran est remontant et aveugle est en panne (et aveugle n’est pas occupé)
Si (screenState == « up » & & blindState == « down » & & occupé == false) {}
Vers le haut les aveugles !
occupé = true ;
blindUp() ;
Écran est en baisse et aveugle est en place (et aveugle n’est pas occupé)
} ElseIf (screenState == « down » & & blindState == « up » & & occupé == false) {}
Vers le bas les aveugles !
occupé = true ;
blindDown() ;
} ElseIf (screenState == « stop ») {}
TODO : arrêter les aveugles ?
}
}
void blindUp() {}
Moteur ON + jusqu'à
digitalWrite (puissance, haute) ;
digitalWrite (dir, HIGH) ;
Alors que l’interrupteur reed ne pas engagé
captorVal = digitalRead(captor) ;
même si (captorVal == HIGH) {}
captorVal = digitalRead(captor) ;
Serial.println ("Waiting for the blind atteindre jusqu'à maintenant en position...") ;
Delay(100) ;
}
Nous sommes sortis le tout en boucle,
Nous ne pouvons arrêter les aveugles
Halt() ;
blindState = « montée » ;
occupé = false ;
Serial.println ("Blind est!") ;
}
void blindDown() {}
Moteur ON + bas
digitalWrite (puissance, haute) ;
digitalWrite (dir, faible) ;
Temps est prend pour les aveugles à descendre
Delay(18000) ;
Arrêter les aveugles
Halt() ;
blindState = « down ».
occupé = false ;
Serial.println ("Blind est DOWN!") ;
}
void arreter() {}
Couper l’alimentation de moteur aveugle
digitalWrite (puissance, faible) ;
Serial.println ("Blind est arrêtée!") ;
}