ИК Sharp

Russk1j
Offline
Зарегистрирован: 03.05.2012

Добрый вечер!

Подскажите пожалуйста в чем может быть дело. Датчик 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);                                     // ждём
}

 

maksim
Offline
Зарегистрирован: 12.02.2012

1. Нам не видно ваших одних и тех же значений.
2. Нам не известно, что еще за монитор порта в процессинге.
3. Не известно как вы подключаете датчик и по какому даташиту.

Так что дело в том что вы дали слишком мало информации что бы вам как то помочь.

Russk1j
Offline
Зарегистрирован: 03.05.2012

Показания напряжения не меняются при изменении расстояния. Выдергиваю пин Vо и эти значения продолжают выводиться, причем они скачут в небольшом диапазоне. Такое ощущение что он вообще ничего с датчика не считывает. Показания смотрю с Сервис>монитор порта (CTRL+SHIFT+M).

Подключал согласно рисунку: Питание на 5в.

http://rghost.ru/44831705

gena
Offline
Зарегистрирован: 04.11.2012

    Проверьте для начала работу самого датчика, без Ардуины. Для этого запитайте его и вольтметром постоянного напряжения измеряйте выходной сигнал в зависимости от расстояния до преграды. Если всё нормально, то поработайте со скетчем AnalogInOutSerial, а уже потом присоеденяйте датчик к Ардуине. И ещё: может строку 05  подправить на               int IRpin = A0;  

maksim
Offline
Зарегистрирован: 12.02.2012

Еще раз вам повторяю - экстрасенсов тут нет, нам не видно что у вас там за значения в мониторе. Нам их покажите! Копируйте содержимое монитора.

Russk1j
Offline
Зарегистрирован: 03.05.2012

Спасибо за совет, и прада, вольтметр все нормально показывал. Я использовал просто те пины, которые работают как цифровые так и аналоговые. Попробовал A0 и все заработало. Раньше работал с УЗ - там все нормально было. Теперь буду знать.

maksim
Offline
Зарегистрирован: 12.02.2012

Не важно что вы скормите функции analogRead() А0 или просто 0 все равно "читать" она будет состояние на аналоговом выводе. Если бы вы нарисовали схему или показали то что у вас в мониторе, или описали как подлючаете, то вам бы сразу был дан ответ - что вы не верно подключили датчик, хотя вы пишите в своем первом посте, что подключаете правилно.

Russk1j
Offline
Зарегистрирован: 03.05.2012

Я имел ввиду, что разобрался какой контакт датчика к чему подключается. Оказалась не к тем выводам МК цеплял.