RC ontvanger 3 standenschakelaars op Arduino

Arduino specifieke Software
Berichten: 5
Geregistreerd: 30 Okt 2021, 16:06

RC ontvanger 3 standenschakelaars op Arduino

Berichtdoor BarryVdW » 30 Okt 2021, 16:24

Beste,

Ben bezig om een RC blusboot te besturen met zowel een 14k zender/ontvanger (Carson)als met een Arduino om zo ook via een app te kunnen besturen.

Het Arduino gedeelte is nieuw voor mij. Heb met een schakelaar al wel een ledje kunnen aansturen en een servo, maar daar blijft het dan bij.
Echter lukt het me niet direct om met de 3 standen schakelaars van de zender 2 zaken te schakelen.
Schakelaar omhoog krijg ik signaal van +/- 950
Schakelaar midden, signaal van 1450 en schakelaar naar beneden krijg ik een signaal van +/- 1950 in de serial monitor.
Hoe zou het programma er hiervoor moeten uitzien?
Waar ik ook meezit is dat blijkbaar niet alle pinnen van de Mega deze kunnen inlezen, enkel pinnen 2, 3, 18, 19, 20 en 21. Hoe moet ik mijn andere kanalen dan aangesloten krijgen en werkend krijgen?

Met vriendelijke groeten,
Barry Van de Wauwer

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: RC ontvanger 3 standenschakelaars op Arduino

Berichtdoor Gij Kieken » 30 Okt 2021, 17:13

Plaats je code wat je tot nu hebt en ook een bedradingsschema hoe je een en ander hebt aangesloten.

Berichten: 5
Geregistreerd: 30 Okt 2021, 16:06

Re: RC ontvanger 3 standenschakelaars op Arduino

Berichtdoor BarryVdW » 31 Okt 2021, 11:59

Beste,

Onderstaand een van de vele probeersels, heb ook met een versie van servoInputs bibliotheek bezig geweest en dan op pin 2 aangesloten.
Het zijn altijd bestaande code dat ik vind, dat ik tracht aan te passen, maar de meeste code die je vind heeft uitvoer naar de monitor en zie je bijna nooit naar een uitgang pin.
Heb in de code ook al verschillende zaken geprobeerd, evenals dat ik die in de code met de servoInputs heb geprobeerd.
Schakelaar van de Carson 14 k zender/ontvanger zit dus aangesloten op pin 22
0 stand=1488
up stand=998
down stand=1993


//This will sketch will read all 8 channels of a RC reciever and input the values via serial monitor.
//Programed for the Arduino MEGA 2560!!!

// Define Variables:
const int chA=22; //Constant variables relating to pin locations

int chAState=0;
const int ledPin=13;

int ch1; //Varibles to store and display the values of each channel

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(115200);
// Set input pins
pinMode(chA, INPUT);

pinMode(ledPin,OUTPUT);
}

//Main Program
void loop() {
// read the input channels
//chAState=digitalRead(chA);
//if(chAState==HIGH){digitalWrite (ledPin,LOW);} // BlusPomp
//else {digitalWrite (ledPin,HIGH);}

if(chA>1600){digitalWrite (13,HIGH);} // BlusPomp
else if (chA<1600){ digitalWrite (22,LOW);}

ch1 = pulseIn (chA,HIGH); //Read and store channel 1
Serial.print ("Ch1:"); //Display text string on Serial Monitor to distinguish variables
Serial.print (ch1); //Print in the value of channel 1
Serial.print ("|");

}

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: RC ontvanger 3 standenschakelaars op Arduino

Berichtdoor shooter » 03 Nov 2021, 14:56

paul deelen
shooter@home.nl

Berichten: 5
Geregistreerd: 30 Okt 2021, 16:06

Re: RC ontvanger 3 standenschakelaars op Arduino

Berichtdoor BarryVdW » 13 Nov 2021, 17:58

Het is me gelukt wat ik hebben wou.

byte PWM_PIN1 = 3;
byte PWM_PIN2 = 4;
const int led = 22;
int pwm_value1;
int pwm_value2;
void setup() {
pinMode(PWM_PIN1, INPUT);
pinMode(PWM_PIN2, INPUT);
Serial.begin(115200);
}

void loop() {
pwm_value1 = pulseIn(PWM_PIN1, HIGH);
Serial.println(pwm_value1);

if(pwm_value1<1200){digitalWrite (13,HIGH);}
else if (pwm_value1>1400 && pwm_value1<1600){digitalWrite (13,LOW);}
else if (pwm_value1>1700){digitalWrite (13,HIGH);}

pwm_value2 = pulseIn(PWM_PIN2, HIGH);
Serial.println(pwm_value2);

if(pwm_value2<1200){digitalWrite (led,HIGH);}
else if (pwm_value2>1400 && pwm_value2<1600){digitalWrite (led,LOW);}
else if (pwm_value2>1700){digitalWrite (led,HIGH);}
}

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 36 gasten