INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
2 RC-Kanäle am Arduino Nano Clone
04.04.2016, 17:29
Beitrag #1
Photo 2 RC-Kanäle am Arduino Nano Clone
Dr Gemeinde,

ich habe das Problem dass sich bei den von mir verwendeten Arduino Clones keine zwei Kanäle einer Fernsteuerung in einem Sketch nutzen lassen - es gehen immer nur die Funktionen eines Kanales. Der von mir verwendete Empfänger ist zu 100% funktionsfähig.

Das Phänomen: habe ich beide ausgesuchten Eingänge belegt, funktioniert nur einer der beiden, bzw. dessen vorgesehen Funktionen. Schließe ich nur einen der Empfängerkanäle an, funktioniert dieser jeweils ohne Probleme. Dabei spielt es keine Rollewelcher Kanal an welchem Eingang angeschlossen ist. Ein Verlegung auf andere Pins bringt ebenfalls kein positives Ergebnis.

Messe ich die Signale mit dem Scope sehe ich keine Peaks oder wilde Schwingungen. Die Signale sind ausreichend definiert.

Die verwendeten Sketche:

1) der von mir für das Schiff zu verwendende:

/* Einsatzbeleuchtung und akustische Signale für das Polizeiboot Helgoland)

*/

int hoerner = 5; // weist Pin 5 als Eingang für Nebel- und Signalhorn zu
int lichter = 7; // weist Pin 7 als Eingang für Blaulicht und Suchscheinwerfer zu
int bl = 3; // weist Pin 3 als Ausgang für Nebelhorn zu
int br = 4; // weist Pin 4 als Ausgang für das Signalhorn zu
int such = 11; // weist Pin 11 als Ausgang für den Suchscheinwerfer zu
int rk = 13; // weist Pin 13 als Ausgang für Funkellicht zu

byte val = 75; // Variable für Nebel- und Signalhorn
byte valw = 75; // Suchscheinwerfer
byte rkon = 0; // Funkellicht


unsigned long duration; // Zeitvariable für das Funkellicht
unsigned long durationw; // Zeitvariable für den Suchscheinwerfer


void setup()
{

// Eingänge für die Fernsteuerung definieren
pinMode(hoerner, INPUT); // Hörner
pinMode(lichter, INPUT); // Suchscheinwerfer und Funkellicht

// Ausgänge für Blinker LEDs und Rundumkennleuchte festlegen
pinMode(bl, OUTPUT); // deklariert bl Pin 3 Nebelhorn als Output
pinMode(br, OUTPUT); // deklariert br Pin 4 Signalhorn als Output
pinMode(rkon, OUTPUT); // deklariert rkon Pin 13 als Funkellicht

// Status der Ausgänge festlegen
digitalWrite(bl, HIGH); //aktiviert Ausgang für das Nebelhorn
digitalWrite(br, HIGH); //aktiviert Ausgang für dasd Signalhorn
digitalWrite(rkon, HIGH); // aktiviert den Ausgang für das Funkellicht


}
void loop()
{
// val Blinker - hoerner
duration = pulseIn(hoerner, HIGH, 20000);
val = map(duration, 1090, 1929, 0, 150);

// valw Warnblinker - pwin
durationw = pulseIn(lichter, HIGH, 20000);
valw = map(durationw, 1090, 1929, 0, 150);


if(val > 120) // Nebelhorn
{
nebelhorn();
}
if(val < 30) // Signalhorn
{
signalhorn();
}
if(valw > 120) // Suchscheinwerfer
{
suchscheinwerfer();
}
if(rkon < 30) // Funkellicht
{
funkellicht();
}
}
void nebelhorn()
{
digitalWrite(bl, LOW);
delay(300);
digitalWrite(bl, HIGH);
delay(300);
}
void signalhorn()
{
digitalWrite(br, LOW);
delay(300);
digitalWrite(br, HIGH);
delay(300);
}
void suchscheinwerfer()
{
digitalWrite(bl, LOW);
digitalWrite(br, LOW);
delay(150);
digitalWrite(bl, HIGH);
digitalWrite(br, HIGH);
delay(150);
}
void funkellicht()
{
if(rkon == 0)
{
digitalWrite(rk, HIGH);
rkon = 1;
delay(50);
}
else
{
digitalWrite(rk, LOW);
rkon = 0;
delay(50);
}
}

2) ein anderer Sketch zum Testen, mit ähnlicher Funktion und gleichem Fehlerbild:

//______________________________________
// Arduino Nano 2 Kanal Schalter
// http://www.modellbau-seenotkreuzer.de
//______________________________________

const unsigned int Ausgang1 = 11; // Relais 1
const unsigned int Ausgang2 = 12; // Relais 2
const unsigned int Ausgang3 = 3; // Relais 3
const unsigned int Ausgang4 = 4; // Relais 4



int Eingang1 = 5; // Empfänger Eingang 1
int Eingang2 = 7; // Empfänger Eingang 2
unsigned long duration;


// Status Festlegung
#define EINGANG1NEUTRAL ((unsigned char) 0)
#define EINGANG2NEUTRAL ((unsigned char) 0)
#define EINGANG1OBEN ((unsigned char) 1)
#define EINGANG1UNTEN ((unsigned char) 2)
#define EINGANG2OBEN ((unsigned char) 3)
#define EINGANG2UNTEN ((unsigned char) 4)
unsigned char Akt_Status1 = EINGANG1NEUTRAL;
unsigned char Vor_Status1 = EINGANG1NEUTRAL;
unsigned char Akt_Status2 = EINGANG2NEUTRAL;
unsigned char Vor_Status2 = EINGANG2NEUTRAL;

void setup()
{
pinMode(Eingang1, INPUT);
pinMode(Ausgang1, OUTPUT);
pinMode(Ausgang2, OUTPUT);

pinMode(Eingang2, INPUT);
pinMode(Ausgang3, OUTPUT);
pinMode(Ausgang4, OUTPUT);


Serial.begin(9600);
}

void loop() {
Ueberwachen_Eingang1();
Ueberwachen_Eingang2();
}
void Ueberwachen_Eingang1()

{
duration = pulseIn(Eingang1, HIGH);
Serial.println(duration);

if ((duration>800) && (duration<1400))
{
Akt_Status1 = EINGANG1OBEN;
Serial.println("Schalter 1 oben");
}

if ((duration>1800) && (duration<2200))
{
Akt_Status1 = EINGANG1UNTEN;
Serial.println("Schalter 1 unten");
}

if ((duration>1500) && (duration<1700))
{
Akt_Status1 = EINGANG1NEUTRAL;
Serial.println("EINGANG1NEUTRAL");
}

if (Vor_Status1 != Akt_Status1)
{
if (Akt_Status1 == EINGANG1NEUTRAL)
{
release1();
Vor_Status1 = EINGANG1NEUTRAL;
}
if (Akt_Status1 == EINGANG1OBEN)
{
EINGANG1oben();
Vor_Status1 = EINGANG1OBEN;
}
if (Akt_Status1 == EINGANG1UNTEN)
{
EINGANG1unten();
Vor_Status1 = EINGANG1UNTEN;
}
}
}

void Ueberwachen_Eingang2()
{
duration = pulseIn(Eingang2, HIGH);
Serial.println(duration);


if ((duration>800) && (duration<1000))
{
Akt_Status2 = EINGANG2UNTEN;
Serial.println("Schalter 2 unten");
}

if ((duration>2000) && (duration<2200))
{
Akt_Status2 = EINGANG2OBEN;
Serial.println("Schalter 2 oben");
}

if ((duration>1500) && (duration<1700))
{
Akt_Status2 = EINGANG2NEUTRAL;
Serial.println("EINGANG2NEUTRAL");
}

if (Vor_Status2 != Akt_Status2)
{

if (Akt_Status2 == EINGANG2UNTEN)
{
EINGANG2unten();
Vor_Status2 = EINGANG2UNTEN;
}
if (Akt_Status2 == EINGANG2OBEN)
{
EINGANG2oben();
Vor_Status2 = EINGANG2OBEN;
}
if (Akt_Status2 == EINGANG2NEUTRAL)
{
release2();
Vor_Status2 = EINGANG2NEUTRAL;
}
}
}

void EINGANG1unten(void)
{
digitalWrite(Ausgang1, LOW);
digitalWrite(Ausgang2, HIGH);
}

void EINGANG1oben(void)
{
digitalWrite(Ausgang1, HIGH);
digitalWrite(Ausgang2, LOW);
}
void EINGANG2oben(void)
{
digitalWrite(Ausgang3, HIGH);
digitalWrite(Ausgang4, LOW);

}
void EINGANG2unten(void)
{
digitalWrite(Ausgang3, LOW);
digitalWrite(Ausgang4, HIGH);

}

void release1(void)
{
digitalWrite(Ausgang1, LOW);
digitalWrite(Ausgang2, LOW);
}

void release2(void)
{

digitalWrite(Ausgang3, LOW);
digitalWrite(Ausgang4, LOW);
}


Bei beiden das gleiche Spiel. Wer kann mir etwas zur möglichen Fehlerquelle sagen?

MfG
A. Fendel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.04.2016, 21:10
Beitrag #2
RE: 2 RC-Kanäle am Arduino Nano Clone
Bitte setze deinen Sketch in Code-Tags, Schaltfläche # verwenden, oder [code*] davor und [/code*] dahinter setzen, aber ohne den Stern *.
Dann ist dieser besser lesbar.
Danke.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Nano / Bootloader per ISP zerstört Mathias 14 485 06.06.2018 22:13
Letzter Beitrag: hotsystems
  Neuer Bootloader für Nano ? Mathias 11 843 17.05.2018 17:35
Letzter Beitrag: Mathias
  Ardunio Nano als Lichtsteuerung im RC Truck RC Bastler 14 1.235 01.04.2018 16:39
Letzter Beitrag: RC Bastler
  welche Komponenten / Schnittstellen passen zum Arduino Nano Thorsten_S 8 760 04.03.2018 18:02
Letzter Beitrag: Tommy56
  Nano vs Micro... carsten9189 19 1.373 01.03.2018 11:22
Letzter Beitrag: carsten9189
  Arudino Nano Pegelwandler fighterii 2 413 16.02.2018 14:28
Letzter Beitrag: fighterii
  UNO und NANO: Unterschiedliches Verhalten manfred474 13 923 15.02.2018 18:25
Letzter Beitrag: georg01
  74HC4051 Multiplizieren. 8 zu 32 Kanäle h.b.Bexter 21 1.760 02.02.2018 11:03
Letzter Beitrag: Binary1
  Mini-PAC mit Arduino NANO koppeln Harry 11 1.048 22.12.2017 12:13
Letzter Beitrag: Harry
  Box cases für arduino nano UNO etc mit ethernet buchse sepp01 8 1.086 22.11.2017 14:55
Letzter Beitrag: sepp01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste