我正在使用录音机和播放器项目。我想实现ADC(模拟到数字)和DAC(数字到模拟)转换器。该代码应该在Arduino中实现 - Atmega 2560(Atmel微控制器)。我试图实现ADC,我发现以下代码:如何使用Arduino-atmega2560微控制器实现8位DAC(数模转换)?
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位ADC? 2-如何以与之前相同的方式实现DAC?我的意思是如何从串口读取数字信号,然后将其转换为像上述算法那样的模拟信号?
谢谢你的帮助。
Arduino Mega 2560没有任何DAC外设。您将需要一些额外的硬件来实现它。这与ADC完全无关。 –
您能否指定哪个版本的Arduino具有DAC外设? –
我不确定有没有。但是你可以很容易地找到带有某种I2C DAC的兼容Arduino的接口板。 –