ЦАП

igormal
Offline
Зарегистрирован: 18.06.2015

Здравствуйте! Подскажите пожалуйста, как написать скетч цифро-аналогового преобразователя для nano. Имеется 6  цифровых входов на которых будут различные комбинации. Всё это нужно перевести в диапазон 0-255 и выдать на аналоговый выход.

vk007
Offline
Зарегистрирован: 16.06.2015

1) считать значения входных пинов и перевести в десятичное значение по формуле:

(pin5*25)+(pin4*24)+(pin3*23)+(pin2*22)+(pin1*21)+(pin0*20)

2) с помощью map привести полученное значение к нужному диапазону и вывести его на аналоговый пин

igormal
Offline
Зарегистрирован: 18.06.2015

Спасибо

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

igormal,  на всякий случай: на nano нет аналагового выхода ) Если подразумевается analogWrite(), то это цифровой сигнал (PWM) .

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

r2r цап

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Кстати если цифровые входы идут подряд, например 8...13, то вообще всё уместится в одну строку :)

data= (PINB&0x3f)<<2; // считать значение пинов с 8 по 13 (0...64)  и умножить на 4.