Считывание напряжения и тока, управление напряжением

Тема в разделе "Микроконтроллеры AVR", создана пользователем SpaceQuester, 29 янв 2016.

  1. Onkel

    Onkel Гуру

    чем хамить почитали бы лучше про шим. 8 бит и все, что порты с, что другие порты. А 8 бит - это от 0 до 255, но никак не 0-1023.
     
    Последнее редактирование: 1 фев 2016
  2. Onkel

    Onkel Гуру

    ничего у вас не выйдет, потому что по -прежнему
    Parameters
    pin: the pin to write to.

    value: the duty cycle: between 0 (always off) and 255 (always on).

    курите матчасть.
     
  3. Vad33

    Vad33 Капитан-оригинал

    [​IMG]
     
  4. SpaceQuester

    SpaceQuester Нерд

    Расскажите, пожалуйста, в чем разница:
    цифрового:
    Код (C++):
    analogWrite(9, 4.0 * (255.0 / 5.0)); // D9
    и аналогово:
    Код (C++):
    analogWrite(A5, 4.0 * (255.0 / 5.0)); // A5
    В первом случае будет ШИМ, а во втором случае тогда что?
     
  5. SpaceQuester

    SpaceQuester Нерд

    Почему
    Код (C++):
    analogWrite(A5, 4.0 * (255.0 / 5.0)); // A5
    int sensorValue = analogRead(A5);
    Serial.println(sensorValue);
    я в мониторе вижу 1023 (типа 5 Вольт), а вольтметром 4 вольта?
     
  6. Onkel

    Onkel Гуру

    вчера вам отвечал, что вы видите:
    Vcc*N/1023, где N- выданное функцией analogRead() значение.
    Померить вольтметром Vcc нужно. Не 4 ли Вольта?
     
  7. SpaceQuester

    SpaceQuester Нерд

    Без вольтметра никак?
    Я подаю на A5 4 Вольта, и сразу же его читаю, как ты видишь. Почему я не 4 Вольта вижу, а значение 1023?
    По идее, если подать на A5
    Код (C++):
    analogWrite(A5, 127))
    и сразу же прочитать и вывести
    Код (C++):
    int sensorValue = analogRead(A5);
    Serial.println(sensorValue);
    я должен увидеть 512, правильно? Где ошибка?
     
    Последнее редактирование: 2 фев 2016
  8. SpaceQuester

    SpaceQuester Нерд

    И вообще, я запутался.
    analogWrite работает ТОЛЬКО с цифровыми выходами: https://monosnap.com/file/YE8Slryw6Q8Z96wtdxtkRvrcLZMh7n
    analogRead ТОЛЬКО с аналоговыми: https://monosnap.com/file/szYSLRIoTIk53aEj9G1wAIKMt3KgyK
    Согласны? Т.е. получается так вообще писать нельзя:
    Код (C++):
    analogWrite(A5, 127))
    Как тогда подать мне 4 Вольта и сразу же считать их?
     
  9. Onkel

    Onkel Гуру

    у вас какая ардуина?
    у uno и одноклассников не все порты могут работать как шим выходы, если вы посмотрите на ардуину, у тех портов, которые могут работать как выходы шим, нарисован значек ~. У А5 есть такой значек? По-моему нет, не так ли? Так что тогда он не может работать как шим выход.
    Впрочем, при любой ардуине один порт не может быть одновременно и выходом, и входом.
    включаете шим на 9 пине
    analogWrite(9, 4.0 * (255.0 / 5.0));
    соединяете его с А5 и считываете.
    Так попробуйте. получится.
     
  10. Onkel

    Onkel Гуру

    о, ура! Соединяете аналоговый выход с аналоговым входом!
    Минутой раньше как раз ответил
    включаете шим на 9 пине
    analogWrite(9, 4.0 * (255.0 / 5.0));
    соединяете его с А5 и считываете
    int sensorValue = analogRead(A5);
    .
     
  11. SpaceQuester

    SpaceQuester Нерд

    Arduino Nano ATmega328.
    Но и мультиметр на D9-GND показывает 3.805 Вольта вместо 4.0.
    Как я понял тут решение одно - на выходы D9-GND посадить двойной RC-контур с такими параметрами: https://monosnap.com/file/pgCrgqFMUU2JQanGtmZYYDYUQaujVQ (из статьи: http://fablabs.ru/wiki/index.php/ФНЧ ) и затем плюсовой вывод RC-контура соединить с A5 что бы настроить его на 4.0 Вольта, регулируя вывод D9 через analogWrite(9, XXX).
     
  12. Onkel

    Onkel Гуру

    питаете чем свою нану? Вольтметр на Vcc что показывает? Думаю, 4,76 В?
    вам хорошо бы не RС, а LC фильтр второго порядка, вчера писал про него тут вам.
     
  13. SpaceQuester

    SpaceQuester Нерд

    USBшником питаю, Угу, 4,76 Вольта.
    LC - это же колебательный контур, а мне постоянное напряжение нужно.
     
  14. Onkel

    Onkel Гуру

    во втором- это вас дезинформировали, analogWrite не работает с портом A5. Так что разница простая- в первом случае работает, во втором - не работает, ибо деза.
     
    SpaceQuester нравится это.
  15. Onkel

    Onkel Гуру

    запитайте внешним блоком питания , по даташиту, тогда у вас Vcc будет 5 В и все будет сходиться. Но особой точности, конечно, не ждите- точность будет не выше точности блока питания. .
    LC может быть и колебательным контуром, и фнч, и фвч. Вам нужен LC фнч 2 порядка.
     
  16. SpaceQuester

    SpaceQuester Нерд

    Про LC ФНЧ я вменяемой инфы не нашёл. Тем более его рассчитать нужно еще. Чем RC ФНЧ не подходит: http://fablabs.ru/wiki/index.php/ФНЧ ? Тут и расчет есть.
    А нельзя без вяких ФНЧ подать (подогнать) мои нужные 0.8 Вольт (и 4.0 Вольта во втором случае) и на этом задача закроется?
     
  17. Onkel

    Onkel Гуру

    не хотите LC - делайте RC. Я бы сделал LC. Рассчет в любом учебнике радиотехники, библиотека есть в Нижнем в универе? Без фнч нельзя, потому что у вас с ардуины идет расческа из импульсов с частотой около 500 Гц, блоку питания фэу это может не понравится. Нужно отфильтровать переменную составляющую, что и делает фнч.
     
  18. Onkel

    Onkel Гуру

    а где же знаменитое:
     
  19. Onkel

    Onkel Гуру

    хамить и тыкань не стоит. Меня это не заводит и характеризует скорее вас, нежели меня.
    Я понимаю что вы дезинформировали тс, нахамили мне за мое указание на вашу, будем так считать, ошибку, тс вам поверил и пытался использовать аналоговые выходы как шим выходы, потратил нервы и время. Может признаете свою ошибку и извинитесь за хамство? Или вы до сих пор считаете что вы правы, рекомендовав тс "analogWrite(A0, твое значение от 0 до 1023)"? Впрочем, меня это не волнует, главное чтобы вы не дезинформировали тс и дальше "вредными советами".
    Кстати, тс не просил помочь ему с выводом напряжения с потенциометров, он просил вывести напряжение с клемм ардуины, с программным заданием этого напряжения через usart и vcp (через usb). Вы понимаете разницу между
    и "регулировать потенциометром"?
     
  20. SpaceQuester

    SpaceQuester Нерд

    Это я еще до замера тока не добрался)