Hi Leute
Da ja bekanntlich die meisten AVR keinen D/A Wandler besitzen habe ich
mich gefragt ob man einen solchen nicht einfach durch ein sehr schnelles
PWM Signal imitieren kann?
Beispiel:
1 | #include <avr/io.h>
|
2 | #define F_CPU 1000000UL
|
3 | #include <util/delay.h>
|
4 |
|
5 | int main()
|
6 | {
|
7 | DDRB |= (1<<1);
|
8 | while(1)
|
9 | {
|
10 | PORTB |= (1<<1);
|
11 | _delay_us(1);
|
12 | PORTB &= ~(1<<1);
|
13 | _delay_us(1);
|
14 | }
|
15 | }
|
Das Prinzip ist jetzt hier vom Gleichspannungsregler abgeschaut. Durch
ein ein/ausschalten im uSekundenbereich wird die Spannung auf einem
Level gehalten. Die Spannung liesse sich noch mit einem zusätzlichen
Kondensator glätten.
Nun, es funktioniert bei mir, ich habe an Pin 1 eine Spannung von 1.8 V.
Gibt es bei dieser Vorgehensweise einen Hacken? Theoretisch wären dann
ja all die vielen D/A Wandler unnötig...