Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(1, 0, A2, A3, A4, A5);
- int pinsGesamt = 11; // definiert wie viele Pins verwendet werden
- int pins[] = {13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3}; // definiert ein Array mit den verwendetn Pins
- int timer = 0;
- int timerset = 1;
- int button = 2;
- int buttonstate = 0;
- int potpin = A0;
- int beeppin = A1;
- void setup() {
- lcd.begin(16, 2);
- pinMode(button, INPUT);
- for (int i = 0; i < pinsGesamt; i = i + 1) {
- pinMode(pins[i], OUTPUT);
- }
- }
- void loop() {
- int timerset = map(analogRead(potpin), 0, 1023, 1, 5);
- int timer = timerset * 60; // Sekundenzähler
- lcd.setCursor(0, 0);
- lcd.print(" ");
- lcd.setCursor(0, 0);
- lcd.print(timerset);
- lcd.setCursor(2, 0);
- lcd.print("Min.");
- if (digitalRead(button) == HIGH) {
- buttonstate = !buttonstate;
- delay(30);
- }
- if (buttonstate == HIGH) {
- count(timerset, timer);
- }
- else {
- waiting();
- }
- }
- void on(int pin) {
- digitalWrite(pins[pin - 1], HIGH);
- }
- void off(int pin) {
- digitalWrite(pins[pin - 1], LOW);
- }
- void count(int set, int counter) {
- if (counter > set * 60 * 0.75) {
- on(1);
- }
- else {
- off(1);
- on(11);
- }
- if (counter > set * 60 * 0.5) {
- on(2);
- }
- else {
- off(2);
- on(10);
- }
- if (counter > set * 60 * 0.25) {
- on(3);
- }
- else {
- off(3);
- on(9);
- }
- if (counter > 1) {
- on(4);
- }
- else {
- off(4);
- on(8);
- finish();
- }
- lcd.setCursor(8, 0);
- lcd.print(" ");
- lcd.setCursor(8, 0);
- lcd.print(counter);
- // lcd.print(" sec.");
- lcd.setCursor(0, 1);
- lcd.print("counting...");
- // Sand ----------------------
- on(5);
- delay(333);
- off(5);
- on(6);
- delay(334);
- off(6);
- on(7);
- delay(333);
- off(7);
- // Sand ----------------------
- counter--;
- }
- void waiting() {
- lcd.setCursor(0, 1);
- lcd.print("waiting...");
- }
- void finish() {
- buttonstate = !buttonstate;
- timer = 0;
- for (int i = 0 ; i < pinsGesamt + 1; i++) {
- off(i);
- digitalWrite(beeppin, HIGH);
- delay(200);
- digitalWrite(beeppin, LOW);
- delay(200);
- digitalWrite(beeppin, HIGH);
- delay(200);
- digitalWrite(beeppin, LOW);
- delay(200);
- digitalWrite(beeppin, HIGH);
- delay(200);
- digitalWrite(beeppin, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement