Hallo und guten Abend,
Bräuchte Hilfe bei der PulseIn Messung.
Und zwar sieht mein PWM/PPM wie im Bild aus.
Dadurch misst der PulsIn 109 anstatt 1500, also er scheint nur die erste Positive flanke zu messen sehe ich das richtig?
Wie könnte ich das einfach aber der 2ten Positiven Flanke Messen?
//ANFANG Variablen Deklarieren
//---------------------------------------------------------------------
unsigned int GAS; //Variable GAS
//unsigned int AUX; //Variable AUX
int AUX1 = 0;
int AUX = 0;
int AUX3 = 0;
//int GAS = 0;
// ENDE Variablen Deklarieren
//---------------------------------------------------------------------
//Anfang Grundeinstellungen
//---------------------------------------------------------------------
void setup() {
pinMode( 9, OUTPUT); //PIN 9 PWM Bremslicht ROT LED
pinMode( 3 , OUTPUT); //PIN 3 PWM Licht Vorne
pinMode( 5 , INPUT);
pinMode( 6 , INPUT);
//ENDE
const int IN_pin = A0; //Eingangspin D5 GAS
const int IN_pin1 = 6; //Eingangspin D6 AUX
Serial.begin(9600); // aktivieren des Seriellen Monitors, um sehen zu können, was der Code macht
}
//ENDE Grundeinstellungen
//---------------------------------------------------------------------
//SCHLEIFE Programm START
//---------------------------------------------------------------------
void loop() {
//---------------------------------------------------------------------
//Bremse Anfang
GAS = pulseIn(A0, HIGH, 25000); // Pulslänge messen GAS
//GAS = analogRead(A0) ;
if (GAS < 1450) { // IST GAS Kleiner als WERT dann nächste Zeile!
analogWrite(9 , 255); // ANALOG AUSGANG auf 255 (MAX) Schalten (0-255)
}
if (GAS > 1450) { // IST GAS Größer als WERT dann nächste Zeile!
analogWrite(9 , 60); // ANALOG AUSGANG auf 60 (gedimmt) Schalten (0-255)
}
//Bremse ENDE
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Licht Dimmen Vorne Anfang
AUX1 = pulseIn(6, HIGH, 25000); // Pulslänge messen AUX
AUX3 = (AUX1 / 3); //Analoges Signal durch 3teilen
AUX = 0.7 * AUX + 0.3 * AUX3; //Analog glätten
if ( 496 < AUX ) { // IST AUX GRÖßER ALS WERT dann nächste Zeile
analogWrite(3 , map ( AUX , 496 , 628 , 0 , 255 )) ; // WERT AUX zuordnen 1495-1900 auf 0-255
}
else if (495 > AUX){
analogWrite(3 , map ( AUX , 362 , 495 , 255 , 0 )) ; // WERT AUX zuordnen 1495-1900 auf 0-255
}
else { // Werte dazwischen dann nächste Zeile
analogWrite(3 , 0); // Analogausgang Ausmachen 0 AUS - 255 MAX
Serial.print("AUS"); // AUS Aktiv Anzeige
Serial.println(); // Neue Zeile
}
Serial.print(AUX1);
Serial.print("\t"); // TAB Taste
Serial.print(AUX);
Serial.print("\t"); // TAB Taste
Serial.print(AUX3);
Serial.print("\t");
Serial.println(GAS);
}