ИК Sharp
- Войдите на сайт для отправки комментариев
Ср, 27/03/2013 - 21:54
Добрый вечер!
Подскажите пожалуйста в чем может быть дело. Датчик Sharp GP2Y0A02YK. Открываю в процессинге монитор порта, и мне все время показывает однИ и те же значения, не смотря на изменение расстояния. Также при отключении провода, с которого и поступает сигнал (напряжение в зависимости от расстояния) значения все те же и естественно теперь тоже не меняются. По даташиту подключаю правильно.
// // SHARP IR sensor testing // int IRpin = 0; // аналоговый пин для подключения выхода Vo сенсора void setup() { Serial.begin(9600); // старт последовательного порта } void loop() { // 5V/1024 = 0.0048828125 float volts = analogRead(IRpin)*0.0048828125; // считываем значение сенсора и переводим в напряжение Serial.println(volts); // выдаём в порт delay(100); // ждём }
1. Нам не видно ваших одних и тех же значений.
2. Нам не известно, что еще за монитор порта в процессинге.
3. Не известно как вы подключаете датчик и по какому даташиту.
Так что дело в том что вы дали слишком мало информации что бы вам как то помочь.
Показания напряжения не меняются при изменении расстояния. Выдергиваю пин Vо и эти значения продолжают выводиться, причем они скачут в небольшом диапазоне. Такое ощущение что он вообще ничего с датчика не считывает. Показания смотрю с Сервис>монитор порта (CTRL+SHIFT+M).
Подключал согласно рисунку: Питание на 5в.
http://rghost.ru/44831705
Проверьте для начала работу самого датчика, без Ардуины. Для этого запитайте его и вольтметром постоянного напряжения измеряйте выходной сигнал в зависимости от расстояния до преграды. Если всё нормально, то поработайте со скетчем AnalogInOutSerial, а уже потом присоеденяйте датчик к Ардуине. И ещё: может строку 05 подправить на int IRpin = A0;
Еще раз вам повторяю - экстрасенсов тут нет, нам не видно что у вас там за значения в мониторе. Нам их покажите! Копируйте содержимое монитора.
Спасибо за совет, и прада, вольтметр все нормально показывал. Я использовал просто те пины, которые работают как цифровые так и аналоговые. Попробовал A0 и все заработало. Раньше работал с УЗ - там все нормально было. Теперь буду знать.
Не важно что вы скормите функции analogRead() А0 или просто 0 все равно "читать" она будет состояние на аналоговом выводе. Если бы вы нарисовали схему или показали то что у вас в мониторе, или описали как подлючаете, то вам бы сразу был дан ответ - что вы не верно подключили датчик, хотя вы пишите в своем первом посте, что подключаете правилно.
Я имел ввиду, что разобрался какой контакт датчика к чему подключается. Оказалась не к тем выводам МК цеплял.