14-08-2018, 22:47
Witam
zaczynam swoją przygodę z arduino i mam pewien problem, buduję stoper który odlicza czas kod odpowiedniego programu udało mi się znaleźć lecz mam pewien problem.. Nie potrafię dodać uruchamiania stopera przez przycisk. Bardzo proszę o pomoc i proszę o wyrozumiałość jestem starym elektronikiem a z programowaniem dopiero rozpoczynam przygodę.
O to kod który posiadam
#include <LiquidCrystal.h> // biblioteka LCD
int sek = 0; // zmienna typu intiger z wartością początkową 0
int minuty = 0; // zmienna typu intiger z wartością początkową 0
int godziny =0; // zmienna typu intiger z wartością początkową 0
int dni = 0; // zmienna typu intiger z wartością początkową 0
int pin_przycisk = 7;
LiquidCrystal lcd(12,11,5,4,3,2); //definiujemy zmienną lcd, przez którą będziemy się
//komunikować z modułem; podajemy do których
//pinów podłączyliśmy się w Arduino
//ustawienia dla pinu przycisku
void setup() // parametry przygotowawcze
{
pinMode(pin_przycisk, INPUT_PULLUP); //pracuje jako wejscie
digitalWrite(pin_przycisk, HIGH); //spoczynkowy stan wysoki (rezystory podciagajace wlaczone)
lcd.begin(16,2); // parametry wyświetlacza
}
void loop() // główna pętla
{
int przycisk = digitalRead(pin_przycisk); //odczytujemy stan przycisku
int stan;
if(przycisk == HIGH) //jesli przycisk nie jest wcisniety
{
stan=0;
}
else // w przeciwnym wypadku
{
stan=1;
delay(100);
}
if(stan==0)
{
int sek = 0;
}
lcd.setCursor(8,0); // ustawienie kursora
lcd.print ("Godzin "); // wyświetlenie tekstu
lcd.print (godziny); // wyświetlenie wartości przypisanej do godziny
lcd.print (" "); // wyświetlenie tekstu -spacja
lcd.setCursor (0,0); // ustaw kursor
lcd.print ("DNI "); // wyświetlenie tekstu
lcd.print (dni); // wyświetlenie wartości przypisanej do dni
if ( minuty == 60) // pętla -wejście gdy spełniony zostaje warunek
{
delay (32); // czekaj 32ms = 0,32s
minuty = 0; // przypisz wartość 0
godziny ++; // zwiększ godziny
}
if (godziny> 23) // wywołanie instrukcji warunkowej -wejście gdy
{ // spełniony zostaje warunek
dni++; // zwiększ dni o 1
godziny = 0; // przypisz wartość 0
}
lcd.setCursor (0,1); // ustaw kursor
lcd.print (minuty); // wyświetlenie wartości przypisanej do minuty
lcd.print (" min "); // wyświetlenie tekstu
lcd.setCursor (8,1); // ustaw kursor
lcd.print (sek); // wyświetlenie wartości przypisanej do sek
lcd.print (" SEC "); // wyświetlenie tekstu
if (sek >59) // analogicznie jak wyżej
{
minuty ++; // zwiększ minuty
sek = 0; // przypisz 0
delay (58); // czekaj 58ms – 0,58s
}
if (sek < 60) // analogicznie jak wyżej
{
delay (988); // czekaj 988ms=0,988 s
sek ++; // zwiększ sek
}
}
Pozdrawiam
zaczynam swoją przygodę z arduino i mam pewien problem, buduję stoper który odlicza czas kod odpowiedniego programu udało mi się znaleźć lecz mam pewien problem.. Nie potrafię dodać uruchamiania stopera przez przycisk. Bardzo proszę o pomoc i proszę o wyrozumiałość jestem starym elektronikiem a z programowaniem dopiero rozpoczynam przygodę.
O to kod który posiadam
#include <LiquidCrystal.h> // biblioteka LCD
int sek = 0; // zmienna typu intiger z wartością początkową 0
int minuty = 0; // zmienna typu intiger z wartością początkową 0
int godziny =0; // zmienna typu intiger z wartością początkową 0
int dni = 0; // zmienna typu intiger z wartością początkową 0
int pin_przycisk = 7;
LiquidCrystal lcd(12,11,5,4,3,2); //definiujemy zmienną lcd, przez którą będziemy się
//komunikować z modułem; podajemy do których
//pinów podłączyliśmy się w Arduino
//ustawienia dla pinu przycisku
void setup() // parametry przygotowawcze
{
pinMode(pin_przycisk, INPUT_PULLUP); //pracuje jako wejscie
digitalWrite(pin_przycisk, HIGH); //spoczynkowy stan wysoki (rezystory podciagajace wlaczone)
lcd.begin(16,2); // parametry wyświetlacza
}
void loop() // główna pętla
{
int przycisk = digitalRead(pin_przycisk); //odczytujemy stan przycisku
int stan;
if(przycisk == HIGH) //jesli przycisk nie jest wcisniety
{
stan=0;
}
else // w przeciwnym wypadku
{
stan=1;
delay(100);
}
if(stan==0)
{
int sek = 0;
}
lcd.setCursor(8,0); // ustawienie kursora
lcd.print ("Godzin "); // wyświetlenie tekstu
lcd.print (godziny); // wyświetlenie wartości przypisanej do godziny
lcd.print (" "); // wyświetlenie tekstu -spacja
lcd.setCursor (0,0); // ustaw kursor
lcd.print ("DNI "); // wyświetlenie tekstu
lcd.print (dni); // wyświetlenie wartości przypisanej do dni
if ( minuty == 60) // pętla -wejście gdy spełniony zostaje warunek
{
delay (32); // czekaj 32ms = 0,32s
minuty = 0; // przypisz wartość 0
godziny ++; // zwiększ godziny
}
if (godziny> 23) // wywołanie instrukcji warunkowej -wejście gdy
{ // spełniony zostaje warunek
dni++; // zwiększ dni o 1
godziny = 0; // przypisz wartość 0
}
lcd.setCursor (0,1); // ustaw kursor
lcd.print (minuty); // wyświetlenie wartości przypisanej do minuty
lcd.print (" min "); // wyświetlenie tekstu
lcd.setCursor (8,1); // ustaw kursor
lcd.print (sek); // wyświetlenie wartości przypisanej do sek
lcd.print (" SEC "); // wyświetlenie tekstu
if (sek >59) // analogicznie jak wyżej
{
minuty ++; // zwiększ minuty
sek = 0; // przypisz 0
delay (58); // czekaj 58ms – 0,58s
}
if (sek < 60) // analogicznie jak wyżej
{
delay (988); // czekaj 988ms=0,988 s
sek ++; // zwiększ sek
}
}
Pozdrawiam