Почему мой аналоговый выход ограничен 2,7 В?
У меня есть MKR WIFI1000 (v2.0 [Arduino:XYZ]) с "настоящим" аналоговый выходной контакт (DAC0/A0/PIN15). Согласно документации, это 10-битный ЦАП, поэтому я предполагаю, что могу написать analogWrite(15, 1023)
, чтобы на этом выводе было 3,3 В.
Однако мне кажется, что оно не превышает 2,7 В, что уже достигнуто задолго до значения 256.
Это мой код:
#include <Arduino.h>
#define AN_OUTPUT 15
int counter = 0;
void setup()
{
pinMode(AN_OUTPUT, OUTPUT);
}
void loop ()
{
counter++;
if (counter > 1023) {
counter = 0;
}
analogWrite(AN_OUTPUT, counter);
delayMicroseconds(1);
}
А это соответствующий сигнал:
1 ответ
Лучший ответ:
Смотрите также:
- DHT11 аналоговый или цифровой?
- Как подключить LCD i2c, используя только контакты A0 и A1 (приведены SDA, SCL, GND и VCC)
- Как найти пиковое значение аналогового сигнала?
- Генерация истинного аналогового сигнала с помощью Arduino
- Управление сервоприводом без библиотеки сервоприводов
- Как считывать аналоговое значение на ESP32-CAM с включенным считывателем SD-карт?
- Является ли AREF стабильным выходным опорным напряжением с аналоговым опорным значением (ВНУТРЕННЕЕ)?
- Управлять яркостью светодиода с помощью потенциометра без кода, а также считывать значение потенциометра?
Вы явно установили A0 как выход? Прочтите [этот текст об аналоговом выходе на A0](https://learn.adafruit.com/adafruit-feather-m0-basic-proto/adapting-sketches-to-m0#analogwrite-dac-on-a0-3008984-8 )? Также помните, что максимальное значение для 10-битного ЦАП не 1024, а 1023 (2^10-1)., @StarCat
Ну, отчасти дело в том, что он в 8-битном режиме. И просто телеграфировать всем, кто хочет поглумиться над этим: нет, это не ответ. Это не объясняет, почему выходное напряжение графика не приближается к 3,3 В или, скорее, к 250/255 * 3,3. Если бы в вопросе было больше кода, было бы ясно, почему это даже не пилообразная форма. Предполагая, что для этого есть веская причина, если бы это был мой проект только для проверки работоспособности, я бы измерил контакт 3,3 В и увидел, что это действительно 3,3 В, а не что-то ближе к 255/250 * 2,7. Вы работаете от низкого заряда батареи?, @timemage
@StarCat Я установил его с помощью
pinMode (DRIVE_PIN, OUTPUT)
, а дляDRIVE_PIN
установлено значение15
., @Bart Friederichs@timemage Я питаю плату от USB-порта на своем ноутбуке., @Bart Friederichs
Что ж, у меня есть плата samd21, которая отличается от вашей, но использует ядро arduino: arduino для samd для определения платы. Я тестировал ядро версии 1.8.13. Я сделал аналоговую запись 255 для 8-битного разрешения по умолчанию на вывод ЦАП, и оно оказалось в пределах нескольких десятков мВ от 3,3 В. Ради всего святого я сделал это на выводе ШИМ, а не на выводе ЦАП, и он также почти полностью соответствует рельсу. Если я использую 250, это дает 3,22 В. Мой регулятор почти соответствует 3,30. Не уверен, что сказать вам, кроме как включить больше. Вся информация о коде и проводке, информация обо всех версиях и т. д., @timemage
@timemage я обновил свой вопрос, @Bart Friederichs
Хорошо, что вы добавили код. Я не знаю, к чему относится *"v2.0 [Arduino:XYZ]"*., @timemage
@timemage это то, что я получаю для «Версии», когда загружаю программу...., @Bart Friederichs
Что ж, кажется, вы сами ответили на него, так что, думаю, я просто не буду беспокоиться о том, что это значит. У вас не было кода в вопросе, когда я проводил тестирование, и я просто не использовал
pinMode
/OUTPUT
, потому что для этого не было причин. Итак, мне любопытно посмотреть, смогу ли я воспроизвести проблему теперь, когда я знаю, в чем она заключается, используя мою собственную плату., @timemage