Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- config pins
- 2: cancel
- 3: +
- 4: -
- 5: confirm
- 11: buzzer
- */
- #include "SevenSegmentTM1637.h"
- #include "pitches.h"
- SevenSegmentTM1637 display(12, 11);
- short armed = 0, timevar[] = {0, 0, 0, 0}, pinstate[] = {0, 0, 0, 0}; //czy uzbrojony , tablica wartosci czasu (dziesiatki minut, jednostki minut, dziesiatki sekund, jednostki sekund), stan pinow
- short digitsleft = 3; //ilosc cyfr do wprowadzenia -1
- unsigned long cur = 0, start = 0; //do obliczania czasu
- /*
- int melody[] = {
- NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
- }; //nie istotne
- int noteDurations[] = {
- 4, 8, 8, 4, 4, 4, 4, 4
- };*/
- void setup() {
- Serial.begin(9600);
- display.begin();
- // display.print("INIT");
- // display.blink();
- pinMode(7, INPUT); pinMode(6, INPUT); pinMode(5, INPUT); pinMode(4, INPUT);
- // display.print("DONE");
- // delay(1000);
- display.clear();
- }
- void loop() {
- pinstate[0] = digitalRead(7); pinstate[1] = digitalRead(6); pinstate[2] = digitalRead(5); pinstate[3] = digitalRead(4);
- if (!armed) {
- //konfiguracja czasu zapalnika
- if (pinstate[0] == 1) {
- digitsleft -= 1;
- if (digitsleft < 0) {
- armed = 1;
- start = millis();
- }
- delay(500);
- }
- if (pinstate[1] == 1) {
- timevar[digitsleft] += 1;
- if (timevar[3] > 5)
- timevar[3] = 5;
- if (timevar[2] > 9)
- timevar[2] = 9;
- if (timevar[1] > 5)
- timevar[1] = 5;
- if (timevar[0] > 9)
- timevar[0] = 9;
- delay(500);
- }
- if (pinstate[2] == 1) {
- timevar[digitsleft] -= 1;
- if (timevar[digitsleft] < 0)
- timevar[digitsleft] = 0;
- delay(500);
- }
- if (pinstate[3] == 1) {
- digitsleft = 3;
- for (int i = 0; i < 4; i++) {
- timevar[i] = 0;
- }
- delay(500);
- }
- }
- if (armed) {
- //dzialanie wlasciwe
- cur = millis();
- if (cur - start >= 1000) { //odlicza sekundke bez zatrzymywania
- timevar[0] -= 1; ///////odejmowanie
- start = cur;
- tone(8, NOTE_C4, 4);
- noTone(8);
- //if (timevar[3] + timevar[2] + timevar[1] + timevar[0] > 0) {
- if (timevar[0] < 0 && timevar[1] > 0) {
- timevar[0] = 9;
- timevar[1] -= 1;
- }
- if (timevar[1] < 0 && timevar[2] > 0) {
- timevar[1] = 5;
- timevar[2] -= 1;
- }
- if (timevar[2] < 0 && timevar[3] > 0) {
- timevar[2] = 9;
- timevar[3] -= 1;
- }
- if (timevar[3] < 0 ) {
- timevar[3] = 0;
- }
- /* } else {
- display.print("END");
- display.blink();
- }*/
- }
- //VVVVV nie istotne
- Serial.println("data: "); Serial.print(timevar[0]); Serial.print(" "); Serial.print(timevar[1]); Serial.print(" "); Serial.print(timevar[2]); Serial.print(" "); Serial.print(timevar[3]);
- }
- if (timevar[3] == 0) {
- display.print((timevar[3] * 1000 + timevar[2] * 100 + timevar[1] * 10 + timevar[0]) / 1000);
- }
- else
- display.print((timevar[3] * 1000 + timevar[2] * 100 + timevar[1] * 10 + timevar[0]));
- if (pinstate[0] || pinstate[1] || pinstate[2] || pinstate[3]) {
- tone(8, NOTE_C4, 4); delay(100); noTone(8);
- }
- pinstate[0] = pinstate[1] = pinstate[2] = pinstate[3] = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement