Вопросы о LCD 1602
- Войдите на сайт для отправки комментариев
Вс, 23/07/2017 - 21:43
Доброго времени суток!
Я начинающий ардуинщик, ну как начинающий - новичек)))
Закралась идея по управлению двумя насосами с возможностью програмирования через дисплей LCD 1602 + ардуино Nano/ Возможно ли это???
И вопрос еще по LCD 1602.
#include <LiquidCrystal.h> // Лобавляем необходимую библиотеку
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // (RS, E, DB4, DB5, DB6, DB7)
const int buttonPin = 2;
const int buttonPin1 = 3;
const int ledPin = 13;
const int ledPin1 = 6;
int buttonState = 0;
int buttonState1 = 0;
void setup(){
lcd.clear();
lcd.begin(16, 2);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);}
void loop() {
buttonState = digitalRead(buttonPin);
buttonState1 = digitalRead(buttonPin1);
if (buttonState == HIGH) {
digitalWrite(ledPin1, HIGH);
lcd.setCursor(0, 0);
lcd.print("KRASNIY");
lcd.setCursor(9, 0);
lcd.print("VKL");
} else {
digitalWrite(ledPin1, LOW);
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(9, 0);
lcd.print(" ");
}
if (buttonState1 == HIGH) {
digitalWrite(ledPin, HIGH);
lcd.setCursor(0, 1);
lcd.print("SINIY VKL");
} else {
digitalWrite(ledPin, LOW);
lcd.setCursor(0, 1);
lcd.print(" ");
}
}
То есть, на экране отображается состояние светодиода (включение) - верхняя строчка пишет о включении красного светодиода, а нижняя -для синего. А вот когда я пытаюсь вывести индикацию одну и вторую только в первую строчку, то текст либо смешиваетсяЮ либо моргает или все затемняется... Как же все-таки выводить все на первую строчку адекватно? И все же управление с этого дисплея интересует - может есть какой-то простенький пример?)))
Заранее спасибо!
#include <LiquidCrystal.h> // Лобавляем необходимую библиотеку LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // (RS, E, DB4, DB5, DB6, DB7) #define buttonPin1 2 #define buttonPin2 3 #define startPin 4 const int ledPin1 = 13; const int ledPin2 = 6; bool buttonState1 = 0; bool buttonState2 = 0; bool startPinState = 0; bool nasos1 = 0; bool nasos2 = 0; bool f_button1= 0; bool f_button2 = 0; void setup() { lcd.begin(16, 2); lcd.clear(); pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(startPin, INPUT); pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); //Serial.begin(9600); } void loop() { buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); startPinState = digitalRead(startPin); if (buttonState1 == HIGH && f_button1== 0) { f_button1= 1; nasos1 = !nasos1; lcd.setCursor(0, 0); lcd.print("KRASNIY "); //lcd.setCursor(9, 0); lcd.print(nasos1); } if (buttonState1 == LOW && f_button1== 1)f_button1=0; if (buttonState2 == HIGH && f_button2 == 0) { f_button2 = 1; nasos2 = !nasos2; lcd.setCursor(0, 1); lcd.print("SINIY "); lcd.print(nasos2); } if (buttonState2 == LOW && f_button2== 1)f_button2=0; if (startPinState == HIGH) { digitalWrite(ledPin1, nasos1); digitalWrite(ledPin2, nasos2); } }