Идёт управление ,например машинкой , тут Arduino через акустический датчик видит ,что расстояние критически малое.
Как ей (плате Arduino) вмешаться в управление ,и например нажать на тормоз ?
Язык оригинала: | |
Язык перевода: | |
Вознаграждение: |
Чтобы общаться и совершать покупки необходимо зарегистрироваться.
Это просто и займёт всего одну минуту.
Спасибо за регистрацию!
Удаленные товары | |||||||
Очистить |
если расстояние большое - берет сигнал с одного порта и перекладывает на другой. (не вмешивается)
если расстояние маленькое - блокирует выставляя ноль (вмешивается).
в моей статье про радиоуправляемый ключ есть код который считывает сигнал PWM с приемника:
ch1 = pulseIn(pulse1_pin1, HIGH, 25000);
ch2 = pulseIn(pulse1_pin2, HIGH, 25000);
Радиоуправляемый ключ на Arduino Nano за 2 доллара.+88
6 дек. 2015 г., 22:45:14 | Николай Мазуров Москва
Статья //www.parkflyer.ru/blogs/view_entry/12874/
а далее накладываете на управление полученую информацию с сонара и приемника.
long taim,cm;
void setup()
{
pinMode (3,OUTPUT);
pinMode (4,INPUT);
pinMode (5,OUTPUT);
pinMode(6,INPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(3,LOW);
delay (2);
digitalWrite(5,LOW);
delay(2);
digitalWrite(3, HIGH);
delay (15);
digitalWrite(5,HIGH);
delay (15);
digitalWrite(3, LOW);
digitalWrite(5,LOW);
taim = pulseIn (4,5, HIGH);
cm = taim/29/2;
Serial.print(cm);
Serial.print ("cm");
delay(500);
}
2. код не считает второй сонар.
3. не все пины подходят для работы.
работающий код на один сонар:
#define Trig 19
#define Echo 12
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
digitalWrite(Trig, HIGH); // Подаем импульс на вход trig дальномера
delayMicroseconds(10); // равный 10 микросекундам
digitalWrite(Trig, LOW); // Отключаем
impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm=impulseTime/58; // Пересчитываем в сантиметры
Serial.println(distance_sm);