Advertisement
Drakkheen

Untitled

Jun 13th, 2019
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <LiquidCrystal.h>
  2.  
  3.  
  4. LiquidCrystal lcd(1, 0, A2, A3, A4, A5);
  5.  
  6. int pinsGesamt = 11;                             // definiert  wie viele Pins verwendet werden
  7. int pins[] = {13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3}; // definiert ein Array mit den verwendetn Pins
  8.  
  9. int timer = 0;
  10. int timerset = 1;
  11.  
  12. int button = 2;
  13. int buttonstate = 0;
  14. int potpin = A0;
  15. int beeppin = A1;
  16.  
  17.  
  18. void setup() {
  19.  
  20.   lcd.begin(16, 2);
  21.  
  22.   pinMode(button, INPUT);
  23.  
  24.   for (int i = 0; i < pinsGesamt; i = i + 1) {
  25.  
  26.     pinMode(pins[i], OUTPUT);
  27.   }
  28. }
  29.  
  30.  
  31. void loop() {
  32.  
  33.   int timerset = map(analogRead(potpin), 0, 1023, 1, 5);
  34.   int timer = timerset * 60; // Sekundenzähler
  35.  
  36.   lcd.setCursor(0, 0);
  37.   lcd.print(" ");
  38.   lcd.setCursor(0, 0);
  39.   lcd.print(timerset);
  40.  
  41.   lcd.setCursor(2, 0);
  42.   lcd.print("Min.");
  43.  
  44.   if (digitalRead(button) == HIGH) {
  45.     buttonstate = !buttonstate;
  46.     delay(30);
  47.   }
  48.   if (buttonstate == HIGH) {
  49.  
  50.     count(timerset, timer);
  51.   }
  52.   else {
  53.     waiting();
  54.   }
  55.  
  56. }
  57.  
  58.  
  59.  
  60. void on(int pin) {
  61.   digitalWrite(pins[pin - 1], HIGH);
  62. }
  63.  
  64. void off(int pin) {
  65.   digitalWrite(pins[pin - 1], LOW);
  66. }
  67.  
  68. void count(int set, int counter) {
  69.  
  70.   if (counter > set * 60 * 0.75) {
  71.  
  72.     on(1);
  73.   }
  74.   else {
  75.     off(1);
  76.  
  77.     on(11);
  78.   }
  79.   if (counter > set * 60 * 0.5) {
  80.     on(2);
  81.   }
  82.   else {
  83.     off(2);
  84.  
  85.     on(10);
  86.   }
  87.   if (counter > set * 60 * 0.25) {
  88.  
  89.     on(3);
  90.   }
  91.   else {
  92.     off(3);
  93.  
  94.     on(9);
  95.  
  96.   }
  97.   if (counter > 1) {
  98.  
  99.     on(4);
  100.   }
  101.   else {
  102.     off(4);
  103.     on(8);
  104.     finish();
  105.   }
  106.  
  107.  
  108.  
  109.   lcd.setCursor(8, 0);
  110.   lcd.print("   ");
  111.   lcd.setCursor(8, 0);
  112.   lcd.print(counter);
  113.  
  114.   // lcd.print(" sec.");
  115.  
  116.   lcd.setCursor(0, 1);
  117.   lcd.print("counting...");
  118.  
  119. // Sand ----------------------
  120.   on(5);
  121.   delay(333);
  122.   off(5);
  123.  
  124.   on(6);
  125.   delay(334);
  126.   off(6);
  127.  
  128.   on(7);
  129.   delay(333);
  130.   off(7);
  131.  
  132. // Sand ----------------------
  133.  
  134.   counter--;
  135.  
  136. }
  137.  
  138.  
  139. void waiting() {
  140.  
  141.   lcd.setCursor(0, 1);
  142.   lcd.print("waiting...");
  143.  
  144.  
  145. }
  146.  
  147. void finish() {
  148.   buttonstate = !buttonstate;
  149.   timer = 0;
  150.  
  151.   for (int i = 0 ; i < pinsGesamt + 1; i++) {
  152.     off(i);
  153.     digitalWrite(beeppin, HIGH);
  154.     delay(200);
  155.     digitalWrite(beeppin, LOW);
  156.     delay(200);
  157.     digitalWrite(beeppin, HIGH);
  158.     delay(200);
  159.     digitalWrite(beeppin, LOW);
  160.     delay(200);
  161.     digitalWrite(beeppin, HIGH);
  162.     delay(200);
  163.     digitalWrite(beeppin, LOW);
  164.  
  165.  
  166.   }
  167.  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement