Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x3F, 20, 4);
- int F1=0; // aktuální počet impulzů Fáze 1
- int F2=0; // aktuální počet impulzů Fáze 2
- int F3=0; // aktuální počet impulzů Fáze 3
- int F11=0; // Stav počítadla Fáze 1
- int F22=0; // Stav počítadla Fáze 2
- int F33=0; // Stav počítadla Fáze 3
- int Pi=1600; // počet impulzů na kilowathodinu
- int F1a=0; // aktuální stav fáze 1
- int F2a=0; // aktuální stav fáze 2
- int F3a=0; // aktuální stav fáze 3
- int F1l=0; // poslední čtený stav fáze 1
- int F2l=0; // poslední čtený stav fáze 1
- int F3l=0; // poslední čtený stav fáze 1
- // Pomocna promenna pro zobrazeni dat
- int changeData = 1;
- ISR(PCINT1_vect){
- if (!(PINC & (1<<PC0))) F1++;
- if (!(PINC & (1<<PC1))) F2++;
- if (!(PINC & (1<<PC2))) F3++;
- }
- void setup() {
- pinMode(14,INPUT_PULLUP); // A0
- pinMode(15,INPUT_PULLUP); // A1
- pinMode(16,INPUT_PULLUP); // A2
- PCICR |= (1<<PCIE1); // povolis PCINT na Port C
- PCMSK1 |= 7; // piny A0,A1,A2 - arduino piny
- sei(); // povolis preruseni globalne
- lcd.begin();
- lcd.backlight();
- lcd.setCursor ( 0, 0 );
- lcd.print("Spotreba elektriky");
- lcd.setCursor ( 0, 1 );
- lcd.print("F1 I- ");
- lcd.setCursor ( 12, 1 );
- lcd.print("P1-");
- lcd.setCursor ( 0, 2 );
- lcd.print("F2 I-");
- lcd.setCursor ( 12, 2 );
- lcd.print("P2-");
- lcd.setCursor ( 0, 3);
- lcd.print("F3 I-");
- }
- void loop() {
- // nastavení kurzoru na devátý znak, druhý řádek
- if (F1>=Pi){
- F1=0;
- lcd.setCursor(7,1);
- lcd.print(" ");
- F11++;
- changeData = 1;
- }
- if (F2>=Pi){
- F2=0;
- lcd.setCursor(7,2);
- lcd.print(" ");
- F22++;
- changeData = 1;
- }
- if (F3>=Pi){
- F3=0;
- lcd.setCursor(7,2);
- lcd.print(" ");
- F33++;
- changeData = 1;
- }
- // Pokud byly zmeneny data pro vypis, tak je vykresli
- if (changeData == 1)
- {
- lcd.setCursor(7,1);
- lcd.print (F1);
- lcd.setCursor(15,1);
- lcd.print(F11);
- lcd.setCursor(7,2);
- lcd.print(F2);
- lcd.setCursor(15,2);
- lcd.print(F22);
- lcd.setCursor(7,3);
- lcd.print(F3);
- //serial.print (F1);
- changeData = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement