Всем привет! Я хочу вывести на дисплей расстояние с датчика. Но получилось так что он выводит какие-то кракозябры и буквы. И в скетче есть "АНИМАЦИЯ" включения.
Скетч:
Скетч:
C++:
#include <Ultrasonic.h> // Библеотека датчика расстояния
#include <OLED_I2C.h> // Библеотека OLED дисплея
Ultrasonic ultrasonic(12, 13); // Куда подключен датчик расстояния
extern uint8_t SmallFont[]; // Английский шрифт
OLED myOLED(20, 21, 20); // Куда подключен дисплей
int distance = 0; // Изночально расстояние равно 0
void setup() {
Serial.begin(9600);
myOLED.begin();
myOLED.setFont(SmallFont);
myOLED.update();// Обновление изображения
myOLED.print("10", CENTER, 50);
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.update();
myOLED.print("1", CENTER, 20);
myOLED.print("|", CENTER, 28);
myOLED.print("9", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("2", CENTER, 20);
myOLED.print("|", CENTER, 35);
myOLED.print("8", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("|", CENTER, 40);
myOLED.print("3", CENTER, 20);
myOLED.print("7", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("-", 65, 45);
myOLED.print("-", 55, 45);
myOLED.print("4", CENTER, 20);
myOLED.print("6", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("-", 70, 45);
myOLED.print("-", 50, 45);
myOLED.print("5", CENTER, 20);
myOLED.print("5", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("-", 75, 45);
myOLED.print("-", 45, 45);
myOLED.print("6", CENTER, 20);
myOLED.print("4", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("|", 80, 41);
myOLED.print("|", 40, 41);
myOLED.print("7", CENTER, 20);
myOLED.print("3", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("|", 80, 33);
myOLED.print("|", 40, 33);
myOLED.print("8", CENTER, 20);
myOLED.print("2", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("|", 80, 23);
myOLED.print("|", 40, 23);
myOLED.print("9", CENTER, 20);
myOLED.print("1", CENTER, 50);
delay(1000);
myOLED.update();
myOLED.clrScr();
myOLED.print("START", CENTER, 0);
myOLED.print("-", 74, 21);
myOLED.print("-", 49, 21);
delay(1000);
myOLED.print("10", CENTER, 20);
myOLED.print("0", CENTER, 50);
myOLED.update();
delay(1000);
myOLED.clrScr();// Все стереть
myOLED.update();
myOLED.print("Starting", CENTER, 0);
myOLED.update();
delay(7000);
}
void loop() {
distance = ultrasonic.read();//Читаем датчик
myOLED.clrScr();// Все стереть
myOLED.setFont(SmallFont);// Включить английский шрифт
myOLED.update();
myOLED.print(distance, CENTER, 0);
myOLED.update();
Serial.print("Distance in CM: ");
Serial.println(distance);
delay(500);
}
Изменено: