Помогите реализовать
Помогите реализовать
Добрый День!
Есть датчик расстояний TF mini plus
который определяет расстояние до 12м.
Есть для него стандартный рабочий код:
[spoiler]
Выдержка из скетча:
плата ESP8266 WeMos mini
SoftwareSerial swSer(2,3);
const int HEADER=0x59;
....
if (swSer.available())
{
if (swSer.read()==HEADER)
{
uart[0]=HEADER;
if (swSer.read()==HEADER)
{
uart[1]=HEADER;
for(i=2;i<9;i++)
{
uart=swSer.read();
}
check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];
if (uart[8]==(check&0xff))
{
dist=uart[2]+uart[3]*256;
strength=uart[4]+uart[5]*256;
...
Serial.print("Distance= ");
Serial.print(dist);
Serial.print('\t');
Serial.print("Strength= ");
Serial.print(strength);
Serial.print('\n');
delay(50);
[/spoiler]
Как правильно реализовать этот код в программе FlProg ? или может просто вписать его после компиляции?
Полный тестовый скетч:
[spoiler]
Описание:
Определяем расстояние, и если оно меньше 1 м, то включается pin 'foto"
#include <SoftwareSerial.h>
#define BAUD_RATE 115200
SoftwareSerial swSer(2,3);
int uart[9];
int dist;
int strength;
int check;
int i;
const int HEADER=0x59;
int minimum;
int maximum;
int a;
int b;
int foto = 0;
void setup() {
pinMode(foto, OUTPUT);
Serial.begin(115200);
minimum = 0;
maximum = 100;
// Подключаем СофтСериал
swSer.begin(115200);
Serial.println("\nSoftware serial test started");
}
void loop() {
if (swSer.available())
{
if (swSer.read()==HEADER)
{
uart[0]=HEADER;
if (swSer.read()==HEADER)
{
uart[1]=HEADER;
for(i=2;i<9;i++)
{
uart=swSer.read();
}
check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];
if (uart[8]==(check&0xff))
{
dist=uart[2]+uart[3]*256;
strength=uart[4]+uart[5]*256;
if (dist < minimum or dist > maximum){
Serial.println("ALARM");
digitalWrite(foto,HIGH);
}
else{
digitalWrite(foto,LOW);
Serial.print("Distance= ");
Serial.print(dist);
Serial.print('\t');
Serial.print("Strength= ");
Serial.print(strength);
Serial.print('\n');
delay(50);
}
}
}
}
}
}
[/spoiler]
Есть датчик расстояний TF mini plus
который определяет расстояние до 12м.
Есть для него стандартный рабочий код:
[spoiler]
Выдержка из скетча:
плата ESP8266 WeMos mini
SoftwareSerial swSer(2,3);
const int HEADER=0x59;
....
if (swSer.available())
{
if (swSer.read()==HEADER)
{
uart[0]=HEADER;
if (swSer.read()==HEADER)
{
uart[1]=HEADER;
for(i=2;i<9;i++)
{
uart=swSer.read();
}
check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];
if (uart[8]==(check&0xff))
{
dist=uart[2]+uart[3]*256;
strength=uart[4]+uart[5]*256;
...
Serial.print("Distance= ");
Serial.print(dist);
Serial.print('\t');
Serial.print("Strength= ");
Serial.print(strength);
Serial.print('\n');
delay(50);
[/spoiler]
Как правильно реализовать этот код в программе FlProg ? или может просто вписать его после компиляции?
Полный тестовый скетч:
[spoiler]
Описание:
Определяем расстояние, и если оно меньше 1 м, то включается pin 'foto"
#include <SoftwareSerial.h>
#define BAUD_RATE 115200
SoftwareSerial swSer(2,3);
int uart[9];
int dist;
int strength;
int check;
int i;
const int HEADER=0x59;
int minimum;
int maximum;
int a;
int b;
int foto = 0;
void setup() {
pinMode(foto, OUTPUT);
Serial.begin(115200);
minimum = 0;
maximum = 100;
// Подключаем СофтСериал
swSer.begin(115200);
Serial.println("\nSoftware serial test started");
}
void loop() {
if (swSer.available())
{
if (swSer.read()==HEADER)
{
uart[0]=HEADER;
if (swSer.read()==HEADER)
{
uart[1]=HEADER;
for(i=2;i<9;i++)
{
uart=swSer.read();
}
check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];
if (uart[8]==(check&0xff))
{
dist=uart[2]+uart[3]*256;
strength=uart[4]+uart[5]*256;
if (dist < minimum or dist > maximum){
Serial.println("ALARM");
digitalWrite(foto,HIGH);
}
else{
digitalWrite(foto,LOW);
Serial.print("Distance= ");
Serial.print(dist);
Serial.print('\t');
Serial.print("Strength= ");
Serial.print(strength);
Serial.print('\n');
delay(50);
}
}
}
}
}
}
[/spoiler]
Помогите реализовать
Отвечу себе )
Попробовал сделать ПБ (Пользовательский блок) - с первой попытки удалось, вставил рабочий скетч, и всё заработало.
Теперь хотелось бы правильно прикрутить вход (SoftwareSerial) на который приходит информация с датчика.
Выкладываю своё творение ПБ здесь, для его дальнейшего допиливания.
Никакого описание кк нему пока не делал, т.к. надеюсь он (этот ПБ) станет более "правильным" и функциональным.
Попробовал сделать ПБ (Пользовательский блок) - с первой попытки удалось, вставил рабочий скетч, и всё заработало.
Теперь хотелось бы правильно прикрутить вход (SoftwareSerial) на который приходит информация с датчика.
Выкладываю своё творение ПБ здесь, для его дальнейшего допиливания.
Никакого описание кк нему пока не делал, т.к. надеюсь он (этот ПБ) станет более "правильным" и функциональным.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Помогите реализовать
Не понялpaska писал(а): 09 фев 2020, 21:18 Теперь хотелось бы правильно прикрутить вход (SoftwareSerial) на который приходит информация с датчика.

В блоке уже прикручен к датчику софт на 2,0,пин
О каком софте еще речь? Может Вы хотели вывести пины софта в настройку блока?
Win10-64, FLProg (portable)
Помогите реализовать
О-Да, чтобы не привязываться к пинам, а иметь возможность настроить их под себя.rw6cm писал(а): 09 фев 2020, 22:47 О каком софте еще речь? Может Вы хотели вывести пины софта в настройку блока?
И чтобы SoftwareSerial также не был бы жёстко прописан в самом блоке.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Помогите реализовать
Двойной клик по блоку и меняйте в настройке.paska писал(а): 09 фев 2020, 23:01 Да, чтобы не привязываться к пинам, а иметь возможность настроить их под себя.
для этого нужен другой блок под Хард сериалpaska писал(а): 09 фев 2020, 23:01 И чтобы SoftwareSerial также не был бы жёстко прописан в самом блоке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Помогите реализовать
Спасибо за помощь!rw6cm писал(а): 09 фев 2020, 23:39Двойной клик по блоку и меняйте в настройке.paska писал(а): 09 фев 2020, 23:01 Да, чтобы не привязываться к пинам, а иметь возможность настроить их под себя.
Radar_TF_mini_(CODE).ubiдля этого нужен другой блок под Хард сериалpaska писал(а): 09 фев 2020, 23:01 И чтобы SoftwareSerial также не был бы жёстко прописан в самом блоке.

-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Помогите реализовать
Осталась решить, кто из вас перенесет/создаст тему в соответствующем разделе).
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Помогите реализовать

Оттестирую, обязательно добавлюIngwar писал(а): 10 фев 2020, 08:12 Осталась решить, кто из вас перенесет/создаст тему в соответствующем разделе).

Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость