Я работаю над проектом Recorder and Player. Я хочу реализовать как преобразователи ADC (Analog to Digital), так и DAC (Digital to Analog). Код должен быть реализован в Arduino - Atmega 2560 (Atmel Microcontroller). Я пытался реализовать АЦП и я нашел следующий код:Как реализовать 8-разрядный ЦАП (цифро-аналоговое преобразование) с микроконтроллером Arduino-atmega 2560?
void setup()
{
Serial.begin (9600);
ADCSRA |= ((1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0));
ADMUX |=(1<<REFS0);
ADCSRA |= (1<<ADEN);
ADCSRA |= (1<<ADSC);
}
int read_adc(int channel)
{
ADMUX &=0xE0;
ADMUX |= channel & 0x07l;
ADCSRB = channel & (1<<ADSC);
ADCSRA |= (1<<ADSC);
while (ADCSRA & (1<<ADSC))
{
return ADCW;
}
}
void loop()
{
int w = read_adc(0);
Serial.write(w);
}
Вот я посылаю оцифрованный сигнал к последовательному порту. У меня есть два вопроса: 1- Как я могу изменить этот код для работы в качестве 8-битного АЦП? 2- Как реализовать ЦАП так же, как раньше? Я имею в виду, как читать цифровой сигнал из последовательного канала, а затем преобразовывать его в аналоговый сигнал, например, алорифм?
Благодарим за помощь.
Arduino Mega 2560 не имеет периферийных устройств ЦАП. Для его реализации потребуется некоторое дополнительное оборудование. И это абсолютно не связано с АЦП. –
Можете ли вы указать, какая версия Arduino имеет периферийное устройство ЦАП? –
Я не уверен, что есть. Но вы можете легко найти Arduino-совместимые прорывные платы с некоторыми типами ЦАП I2C. –