Мой аналог arduino nanoRead всегда возвращает 1023

Модуль датчика CDS, подключенный к Arduino Nano, возвращает только значение 1023. мой код слышит

int Cds = A0; 
//int Led = 13;
int value;
 
void setup() {`enter code here`
    Serial.begin(9600);
    pinMode(Cds,INPUT);
    //pinMode(Led,OUTPUT);
}
 
void loop() {
    Cds=analogRead(A0); 
  
    Serial.println(Cds); 
    if(Cds<300) 
      Serial.println("dark");
    else
      Serial.println("bright"); 
      
    delay(1000);  
}

и nano подключен к макетной плате


person jeongwoon    schedule 26.07.2020    source источник
comment
Выглядит нормально. Проверьте вольтметром, какое реальное напряжение на контакте A0. Возможная причина: напряжение выше, чем может измерить Arduino. Также измерьте напряжение между Gnd и +5v.   -  person Ihor Drachuk    schedule 26.07.2020
comment
Также лучше изменить pinMode(Cds,INPUT); на pinMode(A0,INPUT);, потому что позже вы будете использовать Cds не как пин, а как его значение   -  person Ihor Drachuk    schedule 26.07.2020
comment
С кодом проблем нет Проблема с сопротивлением или напряжением?   -  person jeongwoon    schedule 26.07.2020
comment
Да, это может быть причиной: 1) проверить напряжение между Gnd и +5v. 2) проверьте напряжение между Gnd и A0.   -  person Ihor Drachuk    schedule 26.07.2020
comment
спасибо бро попробую   -  person jeongwoon    schedule 26.07.2020
comment
контакты, используемые в analogRead, не нужны pinMode. Но ваша проблема скорее в цепи, я боюсь.   -  person datafiddler    schedule 26.07.2020
comment
Как подключить CDS к A0? Для точного измерения вход АЦП на Arduino (точнее, ATmega328p) требует, чтобы нагрузка была подключена к входу АЦП с импедансом около 10 кОм. Датчик CDS может иметь сопротивление до нескольких мегаом в темноте (что не может быть правильно считано АЦП) и до сотен ом (что нормально). Чтобы преодолеть эту проблему, вам нужен делитель напряжения на 10 кОм с CDS, одна сторона CDS подключается к 5 В, другая сторона подключается к 10 кОм, а в качестве входа к A0 другая сторона 10 кОм подключается к GND.   -  person hcheung    schedule 28.07.2020


Ответы (1)


Отметьте AnalogReference() в коде вашей платы, чтобы настроить опорное напряжение, используемое для аналогового ввода. Если у вас есть правильная настройка эталонного напряжения, вы всегда получаете максимальное значение 1023.

person Thinh La    schedule 30.11.2020