Browse Source

first commit

faqmoroz 10 months ago
commit
fb0a2fc14f
1 changed files with 134 additions and 0 deletions
  1. 134 0
      timer.ino

+ 134 - 0
timer.ino

@@ -0,0 +1,134 @@
+#define CLK 2
+#define DIO 3
+#define RELEY_PIN 10
+#include "GyverTM1637.h"
+const int DISP_PIN = A1;
+
+int val = 0;
+int timer = 1;
+bool relayOpened = false;
+GyverTM1637 disp(CLK, DIO);
+void setup() {
+  // put your setup code here, to run once:  
+  pinMode(RELEY_PIN, OUTPUT);
+  closeRelay();
+  Serial.begin(9600);
+  disp.clear();
+  disp.brightness(0);
+}
+
+void loop() {
+  // put your main code here, to run repeatedly: 
+  val = analogRead(DISP_PIN);
+  switch (buttonFromValue(val))
+  {
+    case 1:
+      addTimer();
+    break;
+    case 2:
+      declineTimer();
+    break;
+     case 3:
+      shoot();
+    break;
+    case 4:
+      workingLight();
+    break;
+    
+  }
+ disp.displayInt(timer); 
+}
+
+//Открывается по низкому сигналу, com с NO
+void openRelay()
+{
+  digitalWrite(RELEY_PIN, LOW);
+  relayOpened = true;
+}
+
+//Закрываясь замыкает com с NC
+void closeRelay(){
+  digitalWrite(RELEY_PIN, HIGH);
+  relayOpened = false;
+}
+
+void addTimer()
+{
+    delay(500);
+    if (buttonFromValue(analogRead(DISP_PIN)) == 1)
+    {
+      timer = timer * 2;  
+    }
+    else
+    {
+      timer++;  
+    }
+}
+
+void declineTimer()
+{
+    if(timer > 1)
+    {
+      delay(500);
+      if (buttonFromValue(analogRead(DISP_PIN)) == 2)
+      {
+       timer = timer / 2;  
+      }
+      else if (timer>1)
+      {
+        timer--;  
+      }  
+    }
+}
+
+void shoot()
+{
+  closeRelay();
+  int ms = timer * 1000;
+   delay(1000);
+   openRelay();
+   while (ms>0)
+   {
+      delay(1000);
+      ms = ms - 1000;
+      disp.displayInt(ms/1000); 
+   }
+   closeRelay();
+  
+}
+
+void workingLight()
+{
+  if ( relayOpened == true )
+  {
+    closeRelay();
+  }
+  else 
+  {
+    openRelay();
+  } 
+  delay(500);
+    
+}
+
+byte buttonFromValue(int analogValue)
+{
+  if (analogValue>950)
+  {
+    return 4;  
+  }
+  if (analogValue > 713 && analogValue <  950)
+  { 
+    return 3;
+  }
+  if (analogValue > 506 && analogValue < 713)
+  {
+    return 2;  
+  }
+  if (analogValue > 200 && analogValue < 506)
+  {
+    return 1;  
+  }
+  return 0;
+  
+}