• 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
Wyświetlanie na LCD
#1
Witam 
posiadam Arduino UNO 
napisałem taki program

Kod:
#include <Button.h>
#include <Stepper.h>
#include <Wire.h>   // standardowa biblioteka Arduino
#include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD
int Przycisk1 = 3;
int Przycisk2 = 2;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
const int stepsPerRevolution = 140;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  lcd.begin(16,2);   // Załączenie LCD 2x16
  lcd.backlight(); // zalaczenie podwietlenia 
 
  myStepper.setSpeed(60);
  Serial.begin(9600);
  pinMode(Przycisk1,INPUT_PULLUP);
  pinMode(Przycisk2, INPUT_PULLUP);
 Serial.print("Odczyt z fotorezystora");
Serial.print(A0);
}

void loop() {
lcd.setCursor(0,1);
lcd.print(analogRead(A0));
analogRead(A0);

 if (digitalRead(Przycisk1) == LOW)
 {
  lcd.setCursor(0,0);
 lcd.print("Prawo");
  myStepper.step(200);
  delay(20);
 }
else (digitalRead(Przycisk1) == HIGH);
{
  lcd.clear();
  digitalWrite(5,LOW);
  delay(20);
}
if (digitalRead(Przycisk2) == LOW)
{lcd.setCursor(0,0);
  lcd.print("Lewo");
  myStepper.step(-200);
  delay(20);
}
else (digitalRead(Przycisk2) == HIGH);
{
  lcd.clear();
}
}


 
  

Problem polega na tym że chciałbym aby w 2 wierszu LCD były wyświetlane dane niezależnie od tego jaki "Przycisk" nacisnę.(szybkość pętli jest tak szybka że odczyt jest nieczytelny)
Oraz silnik krokowy kręci się tylko w prawo(po naciśniecie "Przycisk2" tez.
Zaczynam dopiero z Arduino wiec sorki za jakieś gafy.
 
Odpowiedź
#2
Użyj komendy np. delay(250) // gdzie 250 to czas w ms
 
Odpowiedź
#3
(24-03-2018, 15:53)rykool napisał(a): Użyj komendy np. delay(250) // gdzie 250 to czas w ms

Nie najlepszy sposób. Dobrze napisany program, nie używa w petli głównej czy przerwaniach delay. Owszem, czasem mozna użyc krótkiego delay (poniżej ms) ale nie dziesiątki czy setki ms.
Użyj funkcji millis i odświeżaj wyświetlacz co np 250ms natomiast reszta petli głównej niech działa z max prędkością. Więcej https://forum.arduinopolska.pl/watek-ard...nokia-5110
i https://forbot.pl/blog/kurs-arduino-ii-w...is-id18418
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości