wolle g. schrieb:
> Nicolas K. schrieb:
>> Wenn ich auf den Trigger-Eingang des HC-SR04 ein Signal gebe aendert
>> der Echo-Ausgang sein Signal nicht,
>
> Dein Programm kann ich nicht beuteilen, da mir der verwendete µC
> unbekannt ist.
> startest Du mit der fallenden oder steigenden Flanke?
Oh stimmt, ich arbeite mit einem Atmega 328P.
Der Trigger wird mit fallender Flanke gesteuert und muss vorher fuer 10
us ein High-Pegel haben.
Bastian W. schrieb:
> Hi,
>
> das mit dem low - high - low kannst du dir sparen. Es reicht wenn du am
> Anfang den Trigger auf low setzt und wartest bis das Echo auf high geht.
> und dann am Ende den Trigger wieder auf high setzt.
> UART.puts( "Start Messung" );
>
> PORTD &= ~( 1 << PORTD2 );
>
> while( !(PIND & ( 1 << PIND3 )));
> TCCR0B |= ( 1 << CS00 ); // start Timer , kein prescaler
>
> while( (PIND & ( 1 << PIND3 )) && ( count < 8000 ) );
> TCCR0B &= ~( 1 << CS00 ); // stopp Timer
>
> if( count >= 8000 ){ // 200ms rum
> UART.puts( "Kein Wert!!!" );
> }else{
> hcWidth = SCHALL 25 ( count / 2 );
> dtostrf( hcWidth, 6, 3, sbuff );
> UART.gets( sbuff );
> }
>
>
> TCNT0 = 56;
> count = 0;
>
> UART.puts( "Ende Messung" );
> PORTD |= ( 1 << PORTD2 );
> _delay_ms( 20 ); //Warten bis naechste Messung
>
> Wie weit ist den Objekt weg vom Sensor ?
Das Programm kommt beim ueberpruefen des PIN 3, also Echo Pin, nicht
mehr weiter.