Hi,
Die Kondensatoren bei ihm in der Schaltung sind Optional (Falls die Fläche zu klein ist), bzw Abblockkondensatoren.
Habe mal deinen Code überflogen und meine 2 Fehler gefunden zu haben.
1. Die Bedingung in deiner For-Schleife Da fehlt noch der Pin
2. Die Entladezeit musst du nicht messen, da die Relativ egal ist. Denn du entlädst den Sensor direkt an GND und das sollte innerhalb von ein Paar Takten erledigt sein (mit und ohne Finger). Wichtig ist die Ladezeit.
In deinem Späteren Code sollte der Pull Up am Pin dauerhaft deaktiviert sein, nur zum Messen wird er Aktiviert und dann hochgezählt, bis der Eingang high ist.
Code:
while(1)
{
PORTA=(0<<PA0);//Pullup deaktivieren um Sensor zu entladen
sleep(1); // Bestimmte Zeit warten, damit der Sensor entladen ist.
PORTA=(1<<PA0);//Pullup aktivieren um Sensor zu laden
for(i=0;PINA & (1<<PA0);i++) // Abfrage ob sensor schon geladen ist.
{
var=var+1; // Wird evtl nicht benötigt, da i schon hochgezählt wird (?)
}
// Ausgabe
if(var>=grenzwert)
{
PORTB=(1<<PB0);
}
else
{
PORTB=(0<<PB0);
}
}
}
So würde ich das Machen, bin aber in C nicht so fit, kann also noch ein Paar Fehler haben.
Lesezeichen