Управление напряжением с помощью встроенного DAC на Arduino Nano 33 IoT
- Войдите на сайт для отправки комментариев
Сб, 18/09/2021 - 18:29
Здравствуйте! нужно управлять контроллером мотор-колеса, управление идет через напряжение от 0 до 3v3
шим не подходит контроллер ведет себя не адекватна...
нашел в интернете код, который нормально компилируется под Arduino Due но на Nano 33 IoT выдает ошибку :exit status 1
Ошибка компиляции для платы Arduino NANO 33 IoT.
int analogPin = 0;
int val = 0;
void setup() {
Serial.begin(9600);
pinMode(DAC, OUTPUT);
pinMode(A1, INPUT);
}
void loop() {
int sensorValue = analogRead(A1);
float voltage = sensorValue * (3.3/1023.0);
// print out the value you read:
Serial.println(voltage);
val = analogRead(analogPin);
analogWrite(DAC, val);
}
+++++++++++++++++++++++++++++++++++++++++++++++
Arduino: 1.8.15 (Mac OS X), Плата:"Arduino NANO 33 IoT"
In file included from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21.h:69:0,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd.h:105,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/Arduino.h:35,
from sketch/3v3.ino.cpp:1:
/Users/vladimirsedykh/Documents/Arduino/3v3/3v3.ino: In function 'void setup()':
/Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21g18a.h:421:28: error: invalid conversion from 'Dac*' to 'pin_size_t {aka unsigned char}' [-fpermissive]
#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
~^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/vladimirsedykh/Documents/Arduino/3v3/3v3.ino:7:11: note: in expansion of macro 'DAC'
pinMode(DAC, OUTPUT);
^~~
In file included from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/Interrupts.h:8:0,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/ArduinoAPI.h:29,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/Arduino.h:23,
from sketch/3v3.ino.cpp:1:
/Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/Common.h:94:6: note: initializing argument 1 of 'void pinMode(pin_size_t, PinMode)'
void pinMode(pin_size_t pinNumber, PinMode pinMode);
^~~~~~~
In file included from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21.h:69:0,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd.h:105,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/Arduino.h:35,
from sketch/3v3.ino.cpp:1:
/Users/vladimirsedykh/Documents/Arduino/3v3/3v3.ino: In function 'void loop()':
/Users/vladimirsedykh/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21g18a.h:421:28: error: invalid conversion from 'Dac*' to 'pin_size_t {aka unsigned char}' [-fpermissive]
#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
~^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/vladimirsedykh/Documents/Arduino/3v3/3v3.ino:19:15: note: in expansion of macro 'DAC'
analogWrite(DAC, val);
^~~
In file included from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/Interrupts.h:8:0,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/ArduinoAPI.h:29,
from /Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/Arduino.h:23,
from sketch/3v3.ino.cpp:1:
/Users/vladimirsedykh/Library/Arduino15/packages/arduino/hardware/samd/1.8.11/cores/arduino/api/Common.h:99:6: note: initializing argument 1 of 'void analogWrite(pin_size_t, int)'
void analogWrite(pin_size_t pinNumber, int value);
^~~~~~~~~~~
exit status 1
Ошибка компиляции для платы Arduino NANO 33 IoT.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Спасибо за информацию. Держите нас в курсе.
А вот так что получается?
или так:
Спасибо!!!! оба варианта скомпилировались, но на А0 ровно 1 вольт, если подключаю диод то то хаотично мерцает, повороты потенциометра немного меняют мерцание но на мультиметре 1 вольт.... Если кто то может тыкнуть где копать буду очень благодарен...
Спасибо!!!! оба варианта скомпилировались, но на А0 ровно 1 вольт, если подключаю диод то то хаотично мерцает, повороты потенциометра немного меняют мерцание но на мультиметре 1 вольт.... Если кто то может тыкнуть где копать буду очень благодарен...
не поленился, залез в аддон - C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.11\variants\nano_33_iot\variant.h
Вот так правильно должно быть:
ЗЫ с тебя коньяк )))
Все аналогично, компилируется но напряжение около 1 вольта прыгает и не регулируется, при подключении диода хаотично моргает. Не понимаю можно ли здесь писать в личку и как безопасно обменяться контактами, если работать будет присылайте адрес, отправлю вам коньяк. Делаю с MAC, сейчас попробую с винды. Может есть какая библиотека для работы с аналоговым выходом?
Все аналогично, компилируется но напряжение около 1 вольта прыгает и не регулируется, при подключении диода хаотично моргает. Не понимаю можно ли здесь писать в личку и как безопасно обменяться контактами, если работать будет присылайте адрес, отправлю вам коньяк. Делаю с MAC, сейчас попробую с винды. Может есть какая библиотека для работы с аналоговым выходом?
НИК на яндексе, но платы у меня нет и, непонятно ты на аналоговый пин с чего подаёшь?
Может просто в цикле вывести в порт от 0 до 1023?
поправил, выше с нулевого читал и туда жеж выводил, и как тут не быть дураком )))
И каков результат???
К А1 подключен переменный резистор на 10К.
Я поменял плату на Arduino DUE и что то начало получаться,
int analogPin = 0;
если нужно 5 вольт надо не выпендриваться, а взять обычную нано и mcp4725
PS даже не знаю простят ли тебя коллеги на этом форуме за выпитый мой коньяк )))
PPS и таки да, скетчи, что я выложил (крайние) ты не попробовал, может быть тогда бы понял свою ошибку...
у DUE A0 и DAC разнесены по разным пинам, а на nano IOT на одном, значит переменный резистор надо подключать на другой пин, к примеру А1 и читать положение резистора с него