• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wyswietlacz lcd, wejscia i wyjscia
#11
(14-10-2017, 23:47)bond napisał(a): Proszę o pomoc. Abym mógł zrozumieć działanie poszczególnych instrukcji. Jak już opisywałem poprzednio to mój program się zapętla przy poleceniu pętli 'if'
Działanie poszczególnych instrukcji zrozumiesz jak nauczysz się podstaw programowania w C++.
Opisz wszystkich instrukcji masz na dysku: Pomoc->Referencje.
Przydatny też może być symulator: https://www.sites.google.com/site/unoardusim/services. Opis do symulatora znajdziesz po rozpakowaniu pliku który ściągnąłeś. Nie trzeba nic instalować.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#12
(15-10-2017, 08:35)namok napisał(a):
(14-10-2017, 23:47)bond napisał(a): Proszę o pomoc. Abym mógł zrozumieć działanie poszczególnych instrukcji. Jak już opisywałem poprzednio to mój program się zapętla przy poleceniu pętli 'if'
Działanie poszczególnych instrukcji zrozumiesz jak nauczysz się podstaw programowania w C++.
Opisz wszystkich instrukcji masz na dysku: Pomoc->Referencje.
Przydatny też może być symulator: https://www.sites.google.com/site/unoardusim/services. Opis do symulatora znajdziesz po rozpakowaniu pliku który ściągnąłeś. Nie trzeba nic instalować.
Oczywiście uczę się podstaw na podstawie moich błędów oraz wspomnianej przez Ciebie 'Pomocy/Referencje', ale jakoś mi to słabo wychodzi. Być może nie powinienem używać funkcji ' if' lecz jakiejś innej. Mój problem zapętlania się programu na razie jest dla mnie niezrozumiały. Jak możesz udzielić mi pomocy to będę wdzięczny.
 
Odpowiedź
#13
Ucz się na podstawie kursów(np https://forbot.pl/blog/kurs-arduino-pods...rsu-id5290) i dokumentacji. Jeśli coś jest niejasne jak działa użyj symulatora.
Jak dotąd nie przedstawiłeś kodu z użyciem if.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#14
Tak jak kolega wyżej napisał poprosimy o kod abyśmy mogli Ci coś bardziej pomóc, bo na razie wróżymy z fusów Smile

Miałbym natomiast dla Ciebie jeszcze taką radę...

Projekt który chcesz zrealizować szczerze mówiąc nie jest jakiś tam bardzo skomplikowany.
Jako, że jesteś początkującym adeptem sztuki programowania to proponowałbym Ci abyś ten projekt podzielił na etapy do wykonania.

Napisz oddzielne programy dla czujników poziomu wody, ciśnienia, obsługi wyświetlacza, przycisków itp.
Potem staraj się poszczególne elementy łączyć ze sobą.

I jak napisałem na początku, przy problemach DAWAJ KOD NA FORUM abyśmy mogli Ci pomóc Smile

Pozdrawiam.
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#15
Tak przekształcałem mój program, że mi się wszystko rozjechało, ale wstępnie udało mi się dojść do pierwowzoru. W załączeniu wysyłam moje kody.

Kod:
#include <LiquidCrystal.h> //Dołączenie bilbioteki
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza
void setup() {
lcd.begin(16, 2); //Deklaracja typu
lcd.clear();
lcd.setCursor(5, 0); //Ustawienie kursora
lcd.print("POZIOM");
lcd.setCursor(0, 1);
lcd.print("Zbiorniki - OK");
pinMode(10, INPUT_PULLUP); //Przycisk jako wejście
pinMode(12, INPUT_PULLUP);
pinMode(11, OUTPUT); //Dioda jako wyjście
pinMode(8,OUTPUT);//Dioda jako wyjście
digitalWrite(11,LOW); //Wyłączenie diody
digitalWrite(8,LOW);//Wyłączonie diody
}
double odczyt;
void loop()
{
if (digitalRead(10) == LOW) { //Jeśli przycisk wciśnięty
digitalWrite(11,HIGH); //Włącz diodę1
} else { //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)

lcd.setCursor(0, 1); //Ustawienie kursora w odpowiednim momencie//
lcd.print("Zboirnik 1 pusty"); //Wyświetlenie tekstu//
delay(1000); //Opóźnienie
  digitalWrite(11,LOW);
  lcd.clear();
  lcd.setCursor(0, 1); //Ustawienie kursora w odpowiednim momencie//
lcd.print("Zbiorniki - OK"); //Wyświetlenie tekstu//

 if (digitalRead(12) == LOW) { //Jeśli przycisk wciśnięty
 digitalWrite(8, HIGH); //Wyłącz diodę
 }else { //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)

lcd.setCursor(0, 1); //Ustawienie kursora w odpowiednim momencie//
lcd.print("Zbiornik 2 pusty"); //Wyświetlenie tekstu//
delay(1000); //Opóźnienie
digitalWrite(8, LOW); //Wyłącz diodę
    lcd.clear();
  lcd.setCursor(0, 1); //Ustawienie kursora w odpowiednim momencie//
lcd.print("Zbiorniki - OK"); //Wyświetlenie tekstu//

 }}}
 
Odpowiedź
#16
1. Program wstawia się w znacznikach "code". Jest do tego odpowiednia ikona.
2. Co w tym programie nie działa?
3. Usuń z tego programu wszystko związane z wyświetlaczem i uruchom go w symulatorze, będzie łatwiej analizować co jest nie tak.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#17
(14-10-2017, 23:47)bond napisał(a): Dla lepszego zobrazowania zamieszczę rysunek i jeszcze raz opiszę przykład.
Mam trzy zbiorniki, w każdym jest woda. W przypadku braku wody w danym zbiorniku ma zasygnalizować zaświeceniem czerwoną LED. Może się zdarzyć, iż wody nie będzie w dwóch lub trzech zbiornikach i wtedy ma wskazać w których niema wody. Ponadto mam dwa włączniki ciśnienia na sieci wskazuje spadek ciśnienia lub wzrost w przypadku małej lub za dużej ilości wody. Ponadto chciał bym aby były te komunikaty wyświetlane na LCD 16x2 lub innym.
Proszę o pomoc. Abym mógł zrozumieć działanie poszczególnych instrukcji. Jak już opisywałem poprzednio to mój program się zapętla przy poleceniu pętli 'if'

Przepraszam ze sie wcinam ale do tego niepotrzebny Ci Arduino tylko czujniki poziomu wody w zbiornikach i cisnienia w instalacji wraz z towarzyszaca sygnalizacja ich stanu lampkami z opisem obok kazdej lampki.
Mozna to uzupelnic o elementy wykonawcze (przekazniki) sterujace na przyklad napelnianiem zbiornikow otwierajac elektrozawory.
Czasem nie warto sobie komplikowac zycia.
Poczatki zawsze sa trudne :-)
Arduino Mega256, Nano, Pro Mini.
 
Odpowiedź
#18
(16-10-2017, 13:20)StaCh napisał(a):
(14-10-2017, 23:47)bond napisał(a): Dla lepszego zobrazowania zamieszczę rysunek i jeszcze raz opiszę przykład.
Mam trzy zbiorniki, w każdym jest woda. W przypadku braku wody w danym zbiorniku ma zasygnalizować zaświeceniem czerwoną LED. Może się zdarzyć, iż wody nie będzie w dwóch lub trzech zbiornikach i wtedy ma wskazać w których niema wody. Ponadto mam dwa włączniki ciśnienia na sieci wskazuje spadek ciśnienia lub wzrost w przypadku małej lub za dużej ilości wody. Ponadto chciał bym aby były te komunikaty wyświetlane na LCD 16x2 lub innym.
Proszę o pomoc. Abym mógł zrozumieć działanie poszczególnych instrukcji. Jak już opisywałem poprzednio to mój program się zapętla przy poleceniu pętli 'if'

Przepraszam ze sie wcinam ale do tego niepotrzebny Ci Arduino tylko czujniki poziomu wody w zbiornikach i cisnienia w instalacji wraz z towarzyszaca sygnalizacja ich stanu lampkami z opisem obok kazdej lampki.
Mozna to uzupelnic o elementy wykonawcze (przekazniki) sterujace na przyklad napelnianiem zbiornikow otwierajac elektrozawory.
Czasem nie warto sobie komplikowac zycia.

Oczywiście można to zrobić tradycyjną metodą. Nie chodzi mi aby tak zrobić. Ja chcę się  nauczyć. Te moje działania mają mi pomóc ogarnąć zagadnienie programowania.
 
Odpowiedź
#19
(15-10-2017, 17:53)namok napisał(a): 1. Program wstawia się w znacznikach "code". Jest do tego odpowiednia ikona.
2. Co w tym programie nie działa?
3. Usuń z tego programu wszystko związane z wyświetlaczem i uruchom go w symulatorze, będzie łatwiej analizować co jest nie tak.

Zrobiłem tak jak proponujesz wyciąłem wszystko związane z wyświetlaczem. Ale nadal mi się zapętliło.
Jak włączę led1 i led2 to nie mogę wyłączyć np. led1 jak nie wyłączę led2 i tak w koło.
Wiem, że robię jakiś błąd, dlatego potrzebuję wsparcia i podpowiedzi gdzie robię błąd. Jak to ogarnę to na pewno będę zabierał się o dołożenie lcd.
pozdrawiam
 
Odpowiedź
#20
Zapomniałem wysłać moje cody. Poniżej zapomniany program.

Kod:
void setup() {
// put your setup code here, to run once:
pinMode(11, INPUT_PULLUP); //Przycisk jako wejście
pinMode(12, INPUT_PULLUP);
pinMode(10, OUTPUT); //Dioda jako wyjście
pinMode(8,OUTPUT);//Dioda jako wyjście
digitalWrite(10,LOW); //Wyłączenie diody
digitalWrite(9,LOW);//Wyłączonie diody
}

void loop() {

if (digitalRead(11) == LOW) { //Jeśli przycisk wciśnięty
digitalWrite(10,HIGH); //Włącz diodę1
} else { //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)


delay(200); //Opóźnienie
digitalWrite(10,LOW);


if (digitalRead(12) == LOW) { //Jeśli przycisk wciśnięty
digitalWrite(8, HIGH); //Wyłącz diodę
}else { //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)


delay(200); //Opóźnienie
digitalWrite(8, LOW); //Wyłącz diodę


}}}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości