7

Помогите разобраться в чем проблема

Ребята помогите плиз. Есть скетч на Ардуино. Заключается в следующем: есть дальномер us100 работающий по uart. Но при включении питания он не показывает верные данные (расстояние), если расстояние от стены до датчика больше 30 см.
Его ребутить на кнопку reset нужно, чтобы он показывал верные значения, либо чтобы расстояние перед ним было меньше 30 см.
Как сделать одну перезагрузку при включении питания? У меня либо зацикливается и перезагружается постоянно, либо не работает совсем перезагрузка (((
Спасибо всем заранее !

Выкладываю код:

#include <SoftwareSerial.h>
#include <U8g2lib.h>

#define RX_PIN 2
#define TX_PIN 3
#define RX_PIN_2 7
#define TX_PIN_2 6

#define LED_RED_PIN 9
#define LED_GREEN_PIN 10
#define LED_BLUE_PIN 11

U8G2_SSD1306_128X64_NONAME_F_HW_I2C display(U8G2_R0);

int distance = 0;
int initial_distance = 0;

SoftwareSerial us100(RX_PIN, TX_PIN);


void setup() {
Serial.begin(9600);
us100.begin(9600);


pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_BLUE_PIN, OUTPUT);

display.begin();
display.clearBuffer();
display.setFont(u8g2_font_ncenB08_tr);
display.setCursor(0, 10);
display.print("Distance:");
display.sendBuffer();
}

void loop() {
delay(100);
us100.write(0x55);
delay(50);

while (us100.available() < 2) {}

byte highByte = us100.read();
byte lowByte = us100.read();

int inches = highByte * 256 + lowByte;

if (initial_distance == 0) {
initial_distance = inches;
}

distance = inches - initial_distance;

display.clearBuffer();
display.setCursor(0, 30);
display.print(distance);
display.sendBuffer();

if (distance >= -500) {
analogWrite(LED_RED_PIN, 255); // включаем красный цвет
analogWrite(LED_GREEN_PIN, 0); // выключаем зеленый цвет
analogWrite(LED_BLUE_PIN, 0); // выключаем синий цвет
} else {
analogWrite(LED_RED_PIN, 0); // выключаем красный цвет
analogWrite(LED_GREEN_PIN, 255); // включаем зеленый цвет
analogWrite(LED_BLUE_PIN, 0); // выключаем синий цвет
}
Serial.write(highByte);
Serial.write(lowByte);

}

Правила сообщества

— Не оскорблять администрацию.

— Не оскорблять других участников.

— Не затрагивать тему политики.

— Не материться!

— Не допускаются расистские высказывания, сексизм, национализм.

— Запрещена реклама сторонних проектов, товаров, сайтов, блогов, ютуб каналов.

— Нельзя публиковать картинки и комментарии явно сексуального характера.

— Нет спаму и фишингу!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества