2 ультразвуковых дальномера
- Войдите на сайт для отправки комментариев
Пнд, 09/11/2015 - 10:00
подскажите как написать скетч на 2 ультразвуковых дальномера.с одним все работает,через какие команды прописать 2 датчик что б управлять 2 реле.вот код на один датчик.
const int Trig = 8;
const int Echo = 9;
const int ledPin = 11; //
void setup()
{
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
unsigned int time_us=0;
unsigned int distance_sm=0;
void loop()
{
digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера
delayMicroseconds(10); // Удерживаем 10 микросекунд
digitalWrite(Trig, LOW); // Затем убираем
time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса
distance_sm=time_us/58; // Пересчитываем в сантиметры
Serial.println(distance_sm); // Выводим на порт
if (distance_sm<50) // Если расстояние меньше 50 сантиметром
{
digitalWrite(ledPin, 1); // Зажигаем светодиод
}
else
{
digitalWrite(ledPin, 0); // иначе тушим
}
delay(100);
}
Вы на самом деле хотите за это заплатить?
5! "А почему бы и нет"))
я хочу что б подсказали как прописать 2 датчик что б они не ссорились.дальше я сам
Для этого нужно сюда писать: http://arduino.ru/forumy/programmirovanie
я хочу что б подсказали как прописать 2 датчик что б они не ссорились.дальше я сам
а дальше по смыслу
вот написал но 2 й датчик так и не работает
const int sensor1Trig =8 ; const int sensor1Echo =9 ; const int led1Pin =7 ; const int sensor2Trig =5 ; const int sensor2Echo = 6; const int led2Pin = 4; void setup() { pinMode(sensor1Trig, OUTPUT); //инициируем как выход pinMode(sensor1Echo, INPUT); //инициируем как вход pinMode(led1Pin, OUTPUT); pinMode(sensor2Trig, OUTPUT); //инициируем как выход pinMode(sensor2Echo, INPUT); //инициируем как вход pinMode(led2Pin, OUTPUT); Serial.begin(9600); /* задаем скорость общения. В нашем случае с компьютером */ } unsigned int impulseTime=0; unsigned int distance_sm=0; void loop() { digitalWrite(sensor1Trig, HIGH); /* Подаем импульс на вход trig дальномера */ delayMicroseconds(10); // равный 10 микросекундам digitalWrite(sensor1Trig, LOW); // Отключаем impulseTime=pulseIn(sensor1Echo, HIGH); // Замеряем длину импульса distance_sm=impulseTime/58; // Пересчитываем в сантиметры Serial.println(distance_sm); // Выводим на порт if (distance_sm<73) // Если расстояние менее 73 сантиметром digitalWrite(sensor2Trig, HIGH); /* Подаем импульс на вход trig дальномера */ delayMicroseconds(10); // равный 10 микросекундам digitalWrite(sensor2Trig, LOW); // Отключаем impulseTime=pulseIn(sensor2Echo, HIGH); // Замеряем длину импульса distance_sm=impulseTime/58; // Пересчитываем в сантиметры Serial.println(distance_sm); // Выводим на порт if (distance_sm<90) // Если расстояние менее 90 сантиметром { digitalWrite(led1Pin, HIGH); // Светодиод горит digitalWrite(led2Pin, HIGH); // Светодиод горит } else { digitalWrite(led1Pin, LOW); // иначе не горит digitalWrite(led2Pin, LOW); // иначе не горит } delay(100); /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс. */ }строчка 32 озадачила
я могу понять, как работает ваш скетч, а вы можете?
1. Два подключенных датчика на разных пинах по одному ( независимо, отдельно ) работают как в примерах?
2. Два разных датчика на разных пинах, с задержкой опроса между ними например пару секунд работают?
Подсказка: используйте вывод дистанции в сериал
Про конденсатор 100-470 мкФ между ножками питания датчиков что-нибудь слышали?
trembo, у него второй датчик корректно работает, только если первый выдает меньше 73 см.
После ИФ меньше 73 ( из-за отсутствия скобок) включает триггер пин2 и запуск измерения, а иначе не включает.
Плохая привычка не ставить в скобки даже один оператор.
Плохая привычка не ставить в скобки даже один оператор.
"На это счёт есть несколько мнений. Одно моё - остальные неправильные!*
за конденсатор не слышал,по отдельности еще не пробовал.А конденсатор параллельно или последовательно питанию нужно?и на один датчик или на 2?
Я паяю между + и - прямо на плате под кварцем https://www.aimagin.com/media/catalog/product/cache/1/image/9df78eab3352...
за конденсатор не слышал,по отдельности еще не пробовал.А конденсатор параллельно или последовательно питанию нужно?и на один датчик или на 2?
исправьте ошибку в коде. не нужны там конденсаторы.
а скетч вообще правильный?или подправить нужно
а скетч вообще правильный?или подправить нужно
Меня мало что может так озадачить, как это сейчас вы сделали...