From 1967d5ff1abd8a902a440eb853b0fb20c8f6b3ac Mon Sep 17 00:00:00 2001
From: Benjamin Koch <bbbsnowball@gmail.com>
Date: Sat, 6 May 2023 02:00:07 +0200
Subject: [PATCH] test MOSFETs

---
 firmware/test1/heizung-test1/src/main.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/firmware/test1/heizung-test1/src/main.cpp b/firmware/test1/heizung-test1/src/main.cpp
index db68267..2951bdd 100644
--- a/firmware/test1/heizung-test1/src/main.cpp
+++ b/firmware/test1/heizung-test1/src/main.cpp
@@ -10,6 +10,7 @@ enum Pinout {
   DRIVE2 = 1,
   LED_W = 2,
   LED_Y = 3,
+  EN_MEASURE_CURRENT = 3,
   LED_B = 4,
   LED_G = 5,
   LED_R = 6,
@@ -55,7 +56,7 @@ void setup() {
   pinMode(DRIVE1, OUTPUT); digitalWrite(DRIVE1, LOW);
   pinMode(DRIVE2, OUTPUT); digitalWrite(DRIVE2, LOW);
   pinMode(2, OUTPUT);
-  pinMode(3, OUTPUT);
+  pinMode(3, OUTPUT);  digitalWrite(EN_MEASURE_CURRENT, LOW);
   pinMode(4, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
@@ -76,7 +77,7 @@ void setup() {
 
   Serial.begin(9600);  // USB serial, baudrate is ignored
   Wire.begin();
-  Wire.setClock(400000);
+  Wire.setClock(100000);
 
   display.setRotation(2);
   hasDisplay = display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
@@ -176,9 +177,9 @@ void loop() {
     led_state++;
     if (led_state == 8)
       led_state = 2;
-    if (led_state > 2)
+    if (led_state > 2 && led_state-1 != EN_MEASURE_CURRENT)
       digitalWrite(led_state-1, 0);
-    if (led_state <= 6)
+    if (led_state <= 6 && led_state != EN_MEASURE_CURRENT)
       digitalWrite(led_state, 1);
   }
 
@@ -237,6 +238,10 @@ void loop() {
     Wire.begin();
   }
 
+  digitalWrite(DRIVE1, buttons[0]);
+  digitalWrite(DRIVE2, buttons[1]);
+  digitalWrite(EN_MEASURE_CURRENT, buttons[2]);
+
   static int displayMode = 0;
   int displayModePrev = displayMode;
   static bool prevButton4 = 0;
-- 
GitLab