|
@@ -3,29 +3,21 @@
|
|
|
#include <avr/power.h>
|
|
|
#include <avr/sleep.h>
|
|
|
|
|
|
-#include <Stepper.h>
|
|
|
#include <DS3231.h>
|
|
|
|
|
|
#include "../lib/calsol.h"
|
|
|
|
|
|
-// Pour steppers
|
|
|
-#define STEP_REV 400
|
|
|
-#define REV 10
|
|
|
-
|
|
|
-const int stepsPerRevolution = 400;
|
|
|
-// 360 / 0.9deg
|
|
|
-
|
|
|
-Stepper myStepper1(stepsPerRevolution, 6, 7, 8, 9);
|
|
|
-Stepper myStepper2(stepsPerRevolution, 2, 3, 4, 5);
|
|
|
-
|
|
|
// Module DS3231 pour l'heure
|
|
|
int gnd_rtc = 14;
|
|
|
int vcc_rtc = 15;
|
|
|
DS3231 rtc(16, 17);
|
|
|
int sqw_rtc = 18;
|
|
|
|
|
|
+int motor_power = 31;
|
|
|
+int pont_h_1 = 22;
|
|
|
+int pont_h_2 = 23;
|
|
|
|
|
|
-int enable_ralay_motor = 22;
|
|
|
+int fin_course_ouverture = 53;
|
|
|
|
|
|
int sens_ouverture = 2; //etat indeterminé
|
|
|
|
|
@@ -59,28 +51,32 @@ void fermer() {
|
|
|
* val = 1, ouvrir la porte
|
|
|
*/
|
|
|
void ouvrirPorte(bool val) {
|
|
|
- myStepper1.setSpeed(100);
|
|
|
- myStepper2.setSpeed(100);
|
|
|
-
|
|
|
if (val == false) {
|
|
|
- for(int i=0; i<=STEP_REV*REV; i++) {
|
|
|
- myStepper1.step(1);
|
|
|
- myStepper2.step(-1);
|
|
|
- }
|
|
|
+ // On set le pont en H +12V 0V
|
|
|
+ digitalWrite(pont_h_1, LOW);
|
|
|
+ digitalWrite(pont_h_2, HIGH);
|
|
|
+ delay(100);
|
|
|
+ // On envoi la purée
|
|
|
+ digitalWrite(motor_power, LOW);
|
|
|
+
|
|
|
+ // delai?
|
|
|
+ delay(3000);
|
|
|
}
|
|
|
|
|
|
if (val == true) {
|
|
|
- for(int i=0; i<=STEP_REV*REV; i++) {
|
|
|
- myStepper1.step(-1);
|
|
|
- myStepper2.step(1);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // Stepper OFF
|
|
|
- for(int i=2; i<=9; i++) {
|
|
|
- digitalWrite(i, LOW);
|
|
|
+ // On set le pont en H pour 0V -12V
|
|
|
+ digitalWrite(pont_h_1, HIGH);
|
|
|
+ digitalWrite(pont_h_2, LOW);
|
|
|
+ delay(100);
|
|
|
+ // On envoi la purée
|
|
|
+ digitalWrite(motor_power, LOW);
|
|
|
+ // On attend le pin qui va bien
|
|
|
+ while (digitalRead(fin_course_ouverture) != HIGH) {
|
|
|
+ delayMicroseconds(10);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ digitalWrite(motor_power, HIGH);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -94,13 +90,24 @@ void clearSerial() {
|
|
|
}
|
|
|
|
|
|
void setup() {
|
|
|
+ // On dit que c'est des sorties
|
|
|
+ pinMode(motor_power, OUTPUT);
|
|
|
+ pinMode(pont_h_1, OUTPUT);
|
|
|
+ pinMode(pont_h_2, OUTPUT);
|
|
|
+ pinMode(fin_course_ouverture, OUTPUT);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // On coupe le relay qui envoi la purée
|
|
|
+ digitalWrite(motor_power, HIGH);
|
|
|
|
|
|
- pinMode(enable_ralay_motor, OUTPUT);
|
|
|
- digitalWrite(enable_ralay_motor, HIGH);
|
|
|
- for(int i=0; i<5; i++) {
|
|
|
- digitalWrite(enable_ralay_motor, LOW);
|
|
|
+ // On fait 2 cycles pour entendre que ca initialise.
|
|
|
+ for(int i=0; i<2; i++) {
|
|
|
+ digitalWrite(pont_h_1, LOW);
|
|
|
+ digitalWrite(pont_h_2, HIGH);
|
|
|
delay(200);
|
|
|
- digitalWrite(enable_ralay_motor, HIGH);
|
|
|
+ digitalWrite(pont_h_1, HIGH);
|
|
|
+ digitalWrite(pont_h_2, LOW);
|
|
|
delay(200);
|
|
|
}
|
|
|
|
|
@@ -123,9 +130,9 @@ void setup() {
|
|
|
}
|
|
|
|
|
|
void setRTC() {
|
|
|
- rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
|
|
|
- rtc.setTime(21, 22, 20); // Set the time to 12:00:00 (24hr format)
|
|
|
- rtc.setDate(22, 4, 2019); // Set the date to January 1st, 2014
|
|
|
+ rtc.setDOW(WEDNESDAY); // Set Day-of-Week to SUNDAY
|
|
|
+ rtc.setTime(21, 21, 00); // Set the time to 12:00:00 (24hr format)
|
|
|
+ rtc.setDate(15, 5, 2019); // Set the date to January 1st, 2014
|
|
|
}
|
|
|
|
|
|
void loop() {
|
|
@@ -274,23 +281,17 @@ void loop() {
|
|
|
sleep_disable();
|
|
|
|
|
|
if (sens_ouverture == 1) {
|
|
|
- digitalWrite(enable_ralay_motor, LOW);
|
|
|
delay(500);
|
|
|
Serial.println("-=-=-=-=- CA OUVRE !!!!!! -=-=-=-=-=-=-");
|
|
|
ouvrirPorte(1);
|
|
|
delay(5000);
|
|
|
- digitalWrite(enable_ralay_motor, HIGH);
|
|
|
- delay(100);
|
|
|
}
|
|
|
|
|
|
if (sens_ouverture == 0) {
|
|
|
- digitalWrite(enable_ralay_motor, LOW);
|
|
|
delay(500);
|
|
|
Serial.println("-=-=-=-=- CA FERME !!!!!! -=-=-=-=-=-=-");
|
|
|
//ouvrirPorte(0);
|
|
|
delay(5000);
|
|
|
- digitalWrite(enable_ralay_motor, HIGH);
|
|
|
- delay(100);
|
|
|
}
|
|
|
|
|
|
sens_ouverture = 2;
|