Например TDA7294

Форум РадиоКот • Просмотр темы - Ардуино и датчики УЗ.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср апр 08, 2026 17:15:18

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 12:14:07 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Здравствуйте, товарищи коты. Значится, есть два датчика УЗ. Они должны детектить препятствия, при чем одновременно. Привожу кусок кода который отвечает за один датчик. Нужно что бы два датчика одновременно выполняли одну и тоже работу. Только что бы увидев препятствие один датчик, сообщал эту инфу одной переменной, а другой датчик увидев препятствие сообщал другой переменной.
Код:
distance = getDistance();//тут берется расстояние
ledLevel = (int) (distance*10)<=255?255-distance*10:0;//тут вычисляется уровень который нужно подать на моторчик.
}

long getEchoTiming() {
digitalWrite(trigPin, LOW);//тут высталяем на вход тригер логический нуль
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);//ставим единицу
delayMicroseconds(10);//ждем пока сигнал отразится
digitalWrite(trigPin, LOW);//ставим нуль
long duration = pulseIn(echoPin,HIGH);//слушаем эфир (она вычитает сколько микросекунд прошло)
return duration;//возвращяем значение
}


long getDistance() //эта функция возвращает расстояние в сантиметрах до объекта перед сенсором
{
long distacne_cm = getEchoTiming()/29/2;
return distacne_cm;
}


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 17:02:07 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4614
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
И в чём проблема ?


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 17:17:49 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Этот кусок отвечает за детектирование одного датчика. А мне нужно что бы работали два сразу дачтика. 2 раза одну и туже функцию объявить нельзя. Или можно?


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 18:18:25 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Нельзя. Но в функцию можно передать параметр с каким датчиком работать.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 18:31:16 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Цитата:
Нельзя. Но в функцию можно передать параметр с каким датчиком работать.

Расскажите как это сделать. Приведет пример если не трудно. Буду очень благодарен.


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вс авг 12, 2012 18:40:00 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Почитайте любой учебник по С, раздел функции. Не вижу смысла переписывать текст оттуда сюда. Вот, например, первая попавшаяся ссылка:
http://informatics.mccme.ru/moodle/mod/book/view.php?id=563&chapterid=304


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вт авг 14, 2012 21:45:01 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Товарищ, помогите. Прочитал Я про функции. Но как передать параметр понять Я не смог. Если бы был там пример похожий на мою проблему. Буду благодарен.


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вт авг 14, 2012 22:42:36 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Ну например так. Я об'единил функции getDistance() getEchoTiming() в одну getDistance(). Ей основная программа передает 2 параметра: пин передатчика (trig) и пин приемника (echo).

Код:
long distance1 = getDistance(trigPin1, echoPin1);//тут берется расстояние от первой пары датчиков
long distance2 = getDistance(trigPin2, echoPin2); // тут от второй

long getDistance(uint8_7 trig, uint8_t echo) //эта функция возвращает расстояние в сантиметрах до объекта перед сенсором
{
  digitalWrite(trig, LOW);//тут высталяем на вход тригер логический нуль
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);//ставим единицу
  delayMicroseconds(10);//ждем пока сигнал отразится
  digitalWrite(trig, LOW);//ставим нуль
  long duration = pulseIn(echo,HIGH);//слушаем эфир (она вычитает сколько микросекунд прошло)
  long distacne_cm = getEchoTiming()/29/2;
  return distacne_cm;
}


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вт авг 14, 2012 22:51:37 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
echoPin, trigPin - что это за переменные и как они объявлены?
Моторчика видать тоже два?
Где весь текст проги?
Всё это дело надо както покучнее собрать, а то переменные передавать из одной функции в другую, голову свернешь.

P.S. пока расписывал опоздал :(


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вт авг 14, 2012 23:25:53 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Ардуино ругается.
Error compiling.
4:18: error: 'uint8_7' was not declared in this scope 4:40: error: expected primary-expression before 'echo'
4:44: error: initializer expression list treated as compound expression
194:1: error: 'distancel' does not name a type
195:1: error: 'ledLevell' does not name a type
198:1: error: 'distance2' does not name a type
199:1: error: 'ledLevel' does not name a type
202:18: error: redefinition of 'long int getDistance'
4:18: error: 'long int getDistance' previously defined here 202:18: error: 'uint8_7' was not declared in this scope 202:40: error: expected primary-expression before 'echo'
207


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Вт авг 14, 2012 23:27:59 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Вот исходники.
Код:
int trigPin = 4;
int echoPin = 7;
int trigPin1 = 13;
int echoPin1 = 12;
int in4 = 11;
int in3 = 10;
int in2 = 2;
int in1 = 8;
int state = 0;//Переменная которая хранит 1 или 0 нужна она для того что бы определить в какую сторону поворачивать.

int duration1;
int duration;
long distance2;
int ledLevel;
long distance1;
int ledLevel1;

void setup() {
 
 
Serial.begin(9600);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(trigPin1,OUTPUT);
pinMode(echoPin1,INPUT);

pinMode(in4,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in1,OUTPUT);
}

void loop() {

}

//все что написано внизу Я взял с этого сайта. Там все подробно описанно. http://research.andbas.com/2011/12/hc-sr04.html
//distance1 = getDistance();//тут берется расстояние
distance1 = getDistance(trigPin1, echoPin1);//тут берется расстояние от первой пары датчиков
ledLevel1 = (int) (distance1*10)<=255?255-distance1*10:0;//тут вычисляется уровень который нужно подать на моторчик

//distance = getDistance();//тут берется расстояние
distance2 = getDistance(trigPin2, echoPin2); // тут от второй
ledLevel = (int) (distance2*10)<=255?255-distance2*10:0;//тут вычисляется уровень который нужно подать на моторчик


long getDistance(uint8_7 trig, uint8_t echo) //эта функция возвращает расстояние в сантиметрах до объекта перед сенсором
{
  digitalWrite(trig, LOW);//тут высталяем на вход тригер логический нуль
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);//ставим единицу
  delayMicroseconds(10);//ждем пока сигнал отразится
  digitalWrite(trig, LOW);//ставим нуль
  long duration = pulseIn(echo,HIGH);//слушаем эфир (она вычитает сколько микросекунд прошло)
  long distacne_cm = getEchoTiming()/29/2;
  return distacne_cm;
}


/*
//)))))))))))))))))))))))))))
long getEchoTiming() {
digitalWrite(trigPin1, LOW);//тут высталяем на вход тригер логический нуль
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);//ставим единицу
delayMicroseconds(10);//ждем пока сигнал отразится
digitalWrite(trigPin1, LOW);//ставим нуль
long duration1 = pulseIn(echoPin1,HIGH);//слушаем эфир (она вычитает сколько микросекунд прошло)
return duration1;
}
//))))))))))))))))))))))))))))

long getDistance() //эта функция возвращает расстояние в сантиметрах до объекта перед сенсором
{
long distacne_cm1 = getEchoTiming()/29/2;
return distacne_cm1;

long distacne_cm = getEchoTiming()/29/2;
return distacne_cm;
}*/


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Ср авг 15, 2012 05:38:54 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Вместо uint8_7 надо, конечно, писать uint8_t (моя опечатка). Я не знал, что Вы пишите для Адруино. Тогда переменные для функции digitalWrite должны быть типа int. Поэтому об'явите функцию getDistance так:
long getDistance(int trig, int echo)
Перед этой функцией перенесите закрывающую скобку метода loop().

В начале кода переименуйте trigPin в trigPin2 и echoPin в echoPin2 (в 2-х местах).


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Ср авг 15, 2012 09:49:53 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Она опять ругается. Я их не смог исправить.


Вложения:
ругательства.png [39.5 KiB]
Скачиваний: 661
Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Ср авг 15, 2012 17:42:51 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Да, я гляжу Вы с С не дружите. Почитайте книги по основам языка, раз микроконтроллерами занимаетесь. Иначе так и будете каждую простую ошибку спрашивать.

Оевидно, надо вместо строчки в функции getDistance()
long distacne_cm = getEchoTiming()/29/2;
написать
long distacne_cm = duration/29/2;


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Ср авг 15, 2012 18:11:39 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс июл 03, 2011 23:15:06
Сообщений: 50
Откуда: Москва
Рейтинг сообщения: 0
Я книгу по С++ уже скачал. Мне нужно как можно скорее сделать этот проект. Это робот будет. Если Я пройду, то Я зачислен в Бауманский университет. МК Я начал недавно увлекаться.


Вернуться наверх
 
 Заголовок сообщения: Re: Ардуино и датчики УЗ.
СообщениеДобавлено: Ср авг 15, 2012 18:15:58 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 623
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3780
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Ну тогда удачи во всем!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y