вопрос про аналоговый порт

Тема в разделе "Флудилка", создана пользователем r13s, 7 июл 2015.

  1. r13s

    r13s Нерд

    Не нашел ветки для своего вопроса, напишу тут. Я только начал изучать платформу, по этому есть вопрос к примеру
    int led = 13;
    void setup() {
    pinMode(led, OUTPUT);
    }
    void loop() {
    digitalWrite(led, HIGH);
    delay(3000);
    digitalWrite(led, LOW);
    delay(1000);
    }
    это мигание лампочки на 13 пине. а если сделать то же самое но аналоговом A0?
    int led = A0;
    void setup() {
    pinMode(led, OUTPUT);
    }
    void loop() {
    analogWrite(led, HIGH);
    delay(3000);
    analogWrite(led, LOW);
    delay(1000);
    }

    контроллер скушал код, но светодиод не мигал как в первом случае
     
  2. ИгорьК

    ИгорьК Гуру

    Он мигал, только Вы не заметили :)
    Потому как "крокодилы летают, только низко-низко". Разберитесь с функцией analogWrite(), что туда надо передавать и что такое HIGH - чему оно равно. Попробуйте поменять ее на digitalWrite()
     
  3. r13s

    r13s Нерд

    HIGH равно включено. если пин аналоговый зачем ее менять на digitalWrite()
     
  4. ИгорьК

    ИгорьК Гуру

    Разве? Поищите ответ на этот вопрос получше.
    А что передается в функцию analogWrite()?
    Попробуйте поменять ее, не стесняйтесь. Just for Fan.
     
  5. bobu

    bobu Нерд

  6. r13s

    r13s Нерд

    analogWrite() поменял на digitalWrite(), заработало, но теперь я ничего не понимаю
     
  7. r13s

    r13s Нерд

    цифровые пины могут быть и входами и выходами, как прописать в скетче, а насчет аналоговых я не уверен. Я прописал на пине AО
    digitalWrite(anal, HIGH); не пойму почему digitalWrite а не analogWrite пин ведь аналоговый
     
  8. r13s

    r13s Нерд

    а еще я замерил напряжение на 13 пине и на АО , на 13 выдал 2.14 в, на АО 1.54 в. к чему бы это, где то можно почитать про описание всех выходов входов на ардуино и напряжение которое подается на них. На сколько мне было известно, сигнальный пин выдавать должен 5 в.
     
  9. Unixon

    Unixon Оракул Модератор

    На цифровых можно делать digitalRead(), digitalWrite().
    На цифровых с ШИМ можно делать digitalRead(), digitalWrite(), analogWrite().
    На аналоговых можно делать digitalRead(), digitalWrite(), analogRead().
     
    dreadfull нравится это.
  10. geher

    geher Гуру

    Аналоговый пин - это такой цифровой пин, к которому может подключаться АЦП.
    Вызов analogRead как раз этим и занимается: подключает АЦП, запускает измерение, считывает результат.
    Вызов analogWrite же из совершенно другой оперы, к аналоговым пинам отношения не имеющей. Он запускает другой процесс - конфигурирует и запускает ШИМ на цифровом выходе (если, естественно, означенный выход такое позволяет).
    digitalWrite грубо говоря соединяет пин с землей (LOW) или питанием +5 (HIGH).
    Нумерация у них вроде как с 14 идет, в смысле A0 - 14, A1-15 и т.д.
    Соответственно и константы доступны - A0 и т.д., которые имеют значением именно 14 и т.д.
     
    dreadfull нравится это.