Проблема с подключением датчиков на входы ArduinoMega2560 и программированием этих датчиков

Nikitos20100
Offline
Зарегистрирован: 26.12.2013

Привет всем! 

На "Мегу" подключил датчик расстояния:

Питание на 40 цифровой

земля к земле

Vss на аналоговый А1.

Датчик включился, напряжение есть. Когда подносишь и относишь от препятствия - изменения напряжение на А1 есть. Но вводя скетч, он отказывается принимать значение с этих датчиков. На А0 например работает через раз.

Вот скетч:

int a;
void setup()
{
  pinMode(A1,INPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(40,OUTPUT);
}
  void loop()
  {
    analogReference (DEFAULT);
    digitalWrite(40,HIGH);
    analogWrite(6,100);
    analogWrite(7,100);
    delay (1000);
    int a=analogRead (A1);
   if (a>=500)
  { 
      digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    delay(10000);
    }
  }

 И объясните смысл analogReference.

Спасибо!

Looka
Offline
Зарегистрирован: 24.04.2012

Какой Вы датчик используете?

Что и как работает на А0 через раз?

 

http://arduino.ru/Reference/AnalogReference 

 

 

 

 

Nikitos20100
Offline
Зарегистрирован: 26.12.2013

 GP2Y0A021 компании Sharp. 

При подключении этого датчика на А0 он дает показания через раз, а на А1 не дает совсем

 

com
Offline
Зарегистрирован: 06.09.2013

а зачем питать датчик через цифровой выход? имхо, изврат какой-то....

Looka
Offline
Зарегистрирован: 24.04.2012

Разделите задачу на две.

1. Проверьте сам датчик.   Запитайте от нормальных 5 вольт, USB например, и проверьте вольтметров что выдает.

2. Разберитесь со своим скетчем, добейтесь  его работы при изменении напряжения  на пине.    

 

И согласен с Com насчет питания.   Если даже есть сокральный смсл это делать, разберитесь сначала с нормальным питанием. 

Nikitos20100
Offline
Зарегистрирован: 26.12.2013

На двигатели, мы выдаем напряжение с выхода 5В используя L293D что бы мегу не сжечь. А поскольку этот выход используется движками, то испоьзуем цифровые выходы( на них при HIGH такое же напряжение).

com
Offline
Зарегистрирован: 06.09.2013

Nikitos20100 пишет:

На двигатели, мы выдаем напряжение с выхода 5В используя L293D что бы мегу не сжечь. А поскольку этот выход используется движками, то испоьзуем цифровые выходы( на них при HIGH такое же напряжение).

мухи от котлет отделите - есть силовая часть, и есть слаботочная управляющая