Widerstandsnetzwerk als Digital-Analog-Wandler
(EN google-translate)
(PL google-translate)
Bild 0-1: R-2R-Widerstandsnetzwerk
Audioverstärkung mit TDA7052
Bild 0-2: Audioverstärkung mit TDA7052
Bild 0-3: Variante Audioverstärkung mit TDA7052
unsigned char sinus[] = {
                             127,142,158,173,188,201,213,224,234,241,
                             247,251,253,253,251,247,241,234,224,213,
                             201,188,173,158,142,127,111,95,80,65,
                             52,40,29,19,12,6,2,0,0,2,
                             6,12,19,29,40,52,65,80,95,111
                        };
int i;
long p;
void setup() 
{
    DDRB=255;
    i=0;
}
void loop() 
{
    PORTB = sinus[i];
    i++;
    i%=50;  
    //delay(1);
    //for(p=0;p<5;p++)
    //    DDRB=255;
}
Code 0-1: Testprogramm.
Erzeugen des Sinusverlaufs mit einem C++-Programm:
#include<math.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int i;
    double x,y,z;
    for(i=0;i<50;i++)
    {
        x=((double)i/50.0)*2.0*M_PI;
        y=sin(x);
        z=(y+1.0)*127.0;
        printf("%i,",(int)z);
    }
}
Code 0-2: sinus.cpp