Explorar o código

delete stepper, add direct motor

pi3rrot %!s(int64=6) %!d(string=hai) anos
pai
achega
cb28b6892c
Modificáronse 1 ficheiros con 43 adicións e 42 borrados
  1. 43 42
      src/sketch.ino

+ 43 - 42
src/sketch.ino

@@ -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;