Помогите разобраться с отображением символов на LCD
- Войдите на сайт для отправки комментариев
Втр, 11/10/2016 - 22:40
Здравствуйте, подскажите куда смотреть и что сделал не так.
На LCD 16x2 в конце строк выдает непонятные символы.
Исходники апаратные: Nano ATMega328
LCD 1602A, подключен через I2C PCF 8574A
Скетч:
*/
// Эти константы не изменится. Они используются, чтобы дать имена
// К штырям, используемых:
const int analogIn1 = A0; // Аналоговый входной контакт, что потенциометр подключен к
const int analogIn2 = A1;
const int analogOut1 = 10; // Выходной вывод аналогового что светодиод подключен к
const int analogOut2 = 9;
int sensor1 = 0; // Значение, считанное из порта
int output1 = 0; // Выводится значение ШИМ (аналоговый выход)
int sensor2 = 0; // Значение, считанное из порта
int output2 = 0; // Выводится значение ШИМ (аналоговый выход)
//вставка библиотеки LCD I2C и инициализация дисплея
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2); // инициализация дисплея 16х2 (двухстрочный)
void setup() {
// Инициализация последовательной передачи данных со скоростью 9600 бит:
Serial.begin(9600);
}
void loop() {
sensor1 = analogRead(analogIn1); // Прочитать аналоговое значение:
sensor2 = analogRead(analogIn2);
output1 = map(sensor1, 50, 130, 0, 250); // Отобразить его в диапазоне от аналогового выхода:
output2 = map(sensor2, 50, 130, 0, 250);
analogWrite(analogOut1, output1); // Изменяет аналоговое значение из:
analogWrite(analogOut2, output2);
// Распечатать результаты последовательного монитора:
Serial.print("Sensor 1 = " );
Serial.print(sensor1);
Serial.print("\t out1 = ");
Serial.println(output1);
Serial.print("\t\t\t\t Sensor 2 = " );
Serial.print(sensor2);
Serial.print("\t out2 = ");
Serial.println(output2);
lcd.begin();
lcd.setCursor(0, 0); // 1 строка
lcd.print("Sensor1 = ");
lcd.println(output1);
lcd.setCursor(0, 1); // 2 строка
lcd.print("Sensor2 = ");
lcd.println(output2);
// Подождать 1000 миллисекунды до следующего цикла
// Для аналого-цифрового преобразователя обосноваться
// После последнего чтения:
delay(100);
}
монитор порта отображает все четко:

из lcd.println уберите ln. При выводе на экран на натуральный логарифм не умножают.
Ну это легко
СПАСИБО!!!
помогло
Еще вопрос,
Как мне получить на выходе LCD те же цифры, но с запятой (грубо говоря разделить на 100)
дабы получить не 175 а 1,75 и не 187 а 1,87
float вместо int
Спасибо