Hilfe zu Arduino(UNO)Sketch gesucht für FB gefunden/ Danksagungen

Bereich für alle Themen rund um die Modellbahn-Elektronik und elektr. Umbauten für Analogbetrieb.
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#76

Beitrag von MicroBahner »

Hallo Rainer,
ts250x hat geschrieben: Do 1. Aug 2019, 20:35 Wenn das jetzt wieder Falsch ist dann gebe ich langsam auf.... :oops:
Du musst nicht aufgeben ... Du hast nur einen kleinen Tippfehler in der Doku gefunden :roll: :mrgreen: . Ist für die nächste Version gleich beseitigt.
Natürlich muss da ein Komma hin.
Was die Datentypen angeht - wie hast Du denn da gesucht? Mit dem Suchbegriff 'datentyp uint16_t' findet man gleich als erstes diesen Treffer.
ts250x hat geschrieben: Do 1. Aug 2019, 20:35 und jeweils geprüft ob es stimmt.
Nur ob es sich übersetzten lässt? Oder auch ob es funktioniert? Du musst in kleinen Schritten vorgehen, und immer testen, ob es auch wirklich funktioniert. Nur dass der Compiler nicht meckert ist nicht ausreichend.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#77

Beitrag von ts250x »

Hallo Franz-Peter,
MicroBahner hat geschrieben: Do 1. Aug 2019, 21:07 Du musst nicht aufgeben ... Du hast nur einen kleinen Tippfehler in der Doku gefunden . Ist für die nächste Version gleich beseitigt.
Natürlich muss da ein Komma hin.
Da fällt mir spontan dazu ein; Auch ein blindes Huhn findet mal ein Korn :mrgreen: :mrgreen:
MicroBahner hat geschrieben: Do 1. Aug 2019, 21:07 Was die Datentypen angeht - wie hast Du denn da gesucht? Mit dem Suchbegriff 'datentyp uint16_t' findet man gleich als erstes diesen Treffer.
ich habe im Browser nur unit16_t eingegeben...........
MicroBahner hat geschrieben: Do 1. Aug 2019, 21:07 Nur ob es sich übersetzten lässt? Oder auch ob es funktioniert? Du musst in kleinen Schritten vorgehen, und immer testen, ob es auch wirklich funktioniert. Nur dass der Compiler nicht meckert ist nicht ausreichend.
Ja das war gestern so mein Plan, also die kleinen Schritte, zum Testen komme ich erst wenn ich auch einen DRV8825 habe denn LED`s zum Testen werden da nicht funktionieren....

Du könntest mir allerdings noch einen gefallen tun, beantworte mir doch meine Vermutung ob das "unit16_t" im Sketch nicht geschrieben wird?
Gruß Rainer bleibt gesund
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#78

Beitrag von ts250x »

Hallo Franz-Peter,

bei dem folgenden macht es noch Probleme:

Code: Alles auswählen

T1Stepper.attachEnable(12,2,0);     //EnaPin,delay,LOW
T2Stepper.attachEnable(9,2,0);	     //funktioniert nicht
T3Stepper.attachEnable(6,2,0);
Als Fehler wird hier unter anderem geschrieben das er auf die MobaTools withEnable nicht zugreift obwohl er auch den Verzeichnis Ort mit auflistet.
Kann es sein dass die noch nicht Freigegeben ist.... oder gibt es da eine andere Lösung dafür ?

Mein Sketch der jetzt erstmal ohne Fehlermeldung daher kommt sieht so aus:

Code: Alles auswählen

#include <MobaTools.h>
#include <IRremote.h>
#include <Arduino.h>
Stepper4 T1Stepper(200, A4988);
Stepper4 T2Stepper(200, A4988);
Stepper4 T3Stepper(200, A4988);
 int irPin = 13;       //Pin am Arduino Nano für den IR Receiver

int ledPin1 = 3;
int ledPin2 = 2;
int ledPin3 = 1;
int ledPin4 = A5;
int ledPin5 = A4;
int ledPin6 = A3;
int ledPin7 = A2;
int ledPin8 = A1;
int ledPin9 = A0;
IRrecv irrecv(irPin);        //Objekt initialisieren für die IR Übertragung
decode_results results;



void setup()
{
  T1Stepper.attach( 10,11 );    // Step und Dir-Pin
  T2Stepper.attach( 7,8 );     // Step und Dir-Pin
  T3Stepper.attach( 4,5 );    // Step und Dir-Pin

  T1Stepper.setSpeedSteps( 200,50 );
  T2Stepper.setSpeedSteps( 200,50 );
  T3Stepper.setSpeedSteps( 200,50 );

  T1Stepper.setRampLen( 50 );  // doppelte Eingabe der Rampenlänge ??
  T2Stepper.setRampLen( 50 );
  T3Stepper.setRampLen( 50 );

//T1Stepper.attachEnable(12,2,0);     //EnaPin,delay,LOW
//T2Stepper.attachEnable(9,2,0);       //funktioniert nicht
//T3Stepper.attachEnable(6,2,0);
  pinMode(irPin, INPUT);    //Den IR Pin als Eingang deklarieren.
  pinMode(ledPin1, OUTPUT);

pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin8, OUTPUT);
  pinMode(ledPin9, OUTPUT);
  Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen.

                                 



}
void loop(){
  if (irrecv.decode(&results)) 
Serial.println (results.value, DEC);

if (results.value == 16724175)  // Taste 1 Wenn der Infrarotempfanger die Zahl

T1Stepper.doSteps(1700); //  macht 1700 Schritte nach „rechts“

if (results.value == 16718055)  // Taste 2

  T1Stepper.doSteps(-1700); // macht 1700 Schritte nach „links“

if (results.value == 16716015)  // Taste 4

T2Stepper.doSteps(1700); //1700 Stepps rechts

if (results.value == 16726215)  // Taste 5

T2Stepper.doSteps(-1700);  // 1700 nach links

if (results.value == 16728765)  // Taste 7

T3Stepper.doSteps(1700);  // 1700 nach rechts

if (results.value == 16730805)  // Taste 8

T3Stepper.doSteps(-1700);   // 1700 nach links

// Beleuchtung
if (results.value == 16756815)  // Taste 3

if (results.value == 16734885)  // Taste 6

if (results.value == 16732845)  // Taste 9

if (results.value == 16738455)  // Taste 0
if (results.value == 16750695)  // Taste 100+

if (results.value == 16756815)  // Taste 200+
if (results.value == 16769055)  // Taste minus
if (results.value == 16754775)  // Taste plus
if (results.value == 16748655)  // Taste EQ
if (results.value == 16720605)  // Taste I<<
if (results.value == 16761405)  // Taste >>I
if (results.value == 16761405)  // Taste <II

if (results.value == 16753245)  // Taste CH-

if (results.value == 16736925)  // Taste CH
if (results.value == 16769565)  // Taste CH+
delay(1000);
}
Beim eingeben der FB Codes ist mir noch aufgefallen das zwei Tasten die gleichen Nummern haben. Da muss ich nochmal die FB Codes Auslesen....
Unten das letzte delay war notwendig damit das ohne Fehler läuft...
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#79

Beitrag von MicroBahner »

Hallo Rainer,
ts250x hat geschrieben: Fr 2. Aug 2019, 10:06 Als Fehler wird hier unter anderem geschrieben das er auf die MobaTools withEnable nicht zugreift obwohl er auch den Verzeichnis Ort mit auflistet.
Kann es sein dass die noch nicht Freigegeben ist.... oder gibt es da eine andere Lösung dafür ?
Ja, das ist noch eine Entwicklerversion. Die ist noch nicht in die aktuelle Version im Bibliotheksverwalter integriert.
ts250x hat geschrieben: Fr 2. Aug 2019, 10:06 Unten das letzte delay war notwendig damit das ohne Fehler läuft...
Du hast da halt eine lange verschachtelte if-Kette gebaut, und irgendwann will der Compiler wissen, was er tun soll, wenn alle if's erfolgreich abgearbeitet wurden ( was in deinem Fall aber nie passieren kann ... ). Wenn Du den Code mal mit ctrl-T formatierst würdest Du das sofort erkennen. Ist halt noch unvollständiger Code.
Mit switch-case wäre das übrigends deutlich effizienter.

P.S. und unterscheide im Hirnstübchen von Anfang an zwischen 'ohne Fehler läuft' und 'ohne Fehler compiliert'. Dazwischen liegen Welten :redzwinker: .
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#80

Beitrag von ts250x »

Guten Morgen Franz-Peter,
Schön dass du dir die Zeit genommen hast mir zu Antworten.

Leider muss ich noch ein paar Fragen stellen, ich hoffe dass ich dich damit nicht "Nerve" :oops:

1. Hast du schon einen Plan bis wann in etwa die Funktionen: "withEnable" freigeschaltet sind

2.
MicroBahner hat geschrieben: So 4. Aug 2019, 08:11 Mit switch-case wäre das übrigends deutlich effizienter.
Meinst du damit : switch-case anstatt: if (results.value == zu benutzen?
MicroBahner hat geschrieben: So 4. Aug 2019, 08:11 P.S. und unterscheide im Hirnstübchen von Anfang an zwischen 'ohne Fehler läuft' und 'ohne Fehler compiliert'. Dazwischen liegen Welten .
JA ich gelobe Besserung......... :mrgreen:

Inzwischen habe ich den Sketch etwas weiter gesponnen oder gestrickt, Mit dem Ergebnis dass der Compiler keine Fehlermeldung ausgegeben hat.

Code: Alles auswählen

#include <MobaTools.h>
#include <IRremote.h>
#include <Arduino.h>
Stepper4 T1Stepper(200, A4988);
Stepper4 T2Stepper(200, A4988);
Stepper4 T3Stepper(200, A4988);
 int irPin = 13;       //Pin am Arduino Nano für den IR Receiver

int ledPin1 = 3;
int ledPin2 = 2;
int ledPin3 = 1;
int ledPin4 = A5;
int ledPin5 = A4;
int ledPin6 = A3;
int ledPin7 = A2;
int ledPin8 = A1;
int ledPin9 = A0;
IRrecv irrecv(irPin);                                                          //Objekt initialisieren für die IR Übertragung
decode_results results;



void setup()
{
  T1Stepper.attach( 10,11 );    // Step und Dir-Pin
  T2Stepper.attach( 7,8 );     // Step und Dir-Pin
  T3Stepper.attach( 4,5 );    // Step und Dir-Pin

  T1Stepper.setSpeedSteps( 200,50 );
  T2Stepper.setSpeedSteps( 200,50 );
  T3Stepper.setSpeedSteps( 200,50 );

  T1Stepper.setRampLen( 50 );  // doppelte Eingabe der Rampenlänge ??
  T2Stepper.setRampLen( 50 );
  T3Stepper.setRampLen( 50 );

//T1Stepper.attachEnable(12,2,0);     //EnaPin,delay,LOW
//T2Stepper.attachEnable(9,2,0);       //funktioniert nicht
//T3Stepper.attachEnable(6,2,0);
  pinMode(irPin, INPUT);    //Den IR Pin als Eingang deklarieren.
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin8, OUTPUT);
  pinMode(ledPin9, OUTPUT);
  Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen.

                                 



}
void loop()
{
  if (irrecv.decode(&results)) 
Serial.println (results.value, DEC);

if (results.value == 16724175)  //  Wenn der Infrarotempfanger die Zahl

T1Stepper.doSteps(1700); // Taste 1 macht 1700 Schritte nach „rechts“

if (results.value == 16718055)  // Taste 2

  T1Stepper.doSteps(-1700); // macht 1700 Schritte nach „links“

if (results.value == 16716015)  // Taste 4

T2Stepper.doSteps(1700); //1700 Stepps rechts

if (results.value == 16726215)  // Taste 5

T2Stepper.doSteps(-1700);  // 1700 nach links

if (results.value == 16728765)  // Taste 7

T3Stepper.doSteps(1700);  // 1700 nach rechts

if (results.value == 16730805)  // Taste 8

T3Stepper.doSteps(-1700);   // 1700 nach links

// Beleuchtung
if (results.value == 16756815)  // Taste 3
digitalWrite(ledPin1,HIGH);
if (results.value == 16734885)  // Taste 6
digitalWrite(ledPin1,LOW);
if (results.value == 16732845)  // Taste 9
digitalWrite(ledPin2,HIGH);
if (results.value == 16738455)  // Taste 0
digitalWrite(ledPin2,LOW);
if (results.value == 16750695)  // Taste 100+
digitalWrite(ledPin3,HIGH);
if (results.value == 16756815)  // Taste 200+
digitalWrite(ledPin3,LOW);
if (results.value == 16769055)  // Taste minus
digitalWrite(ledPin4,HIGH);
if (results.value == 16754775)  // Taste plus
digitalWrite(ledPin4,LOW);
if (results.value == 16748655)  // Taste EQ
digitalWrite(ledPin5,HIGH);
if (results.value == 16720605)  // Taste I<<
digitalWrite(ledPin5,LOW);
if (results.value == 16712445)  // Taste >>I
digitalWrite(ledPin6,HIGH);
if (results.value == 16761405)  // Taste <II
digitalWrite(ledPin6,LOW);

if (results.value == 16753245)  // Taste CH-
digitalWrite (ledPin7,HIGH);
digitalWrite (ledPin8,HIGH);
digitalWrite (ledPin9,HIGH);
if (results.value == 16736925)  // Taste CH
digitalWrite (ledPin7,LOW);
digitalWrite(ledPin8,LOW);
digitalWrite(ledPin9,LOW);
if (results.value == 16769565)  // Taste CH+
delay(10);
}
Dabei habe ich die beiden Tasten(Zahlenwerte) nochmal korrigiert.
Nun bin ich am Überlegen wie ich die LED`s im Lokschuppen am besten starten lasse, ich wollte diese ja wie "Alte abgenudelte" Leuchtstoffröhren starten. Also erst 2-4 mal blinken mit halber Leuchtkraft dann langsam heller und zum Schluss dann an.

Weiterhin muss ich mir Gedanken machen wie ich die Strombelastung vom UNO reduzieren kann für die vielen LED`s

Gibt es dafür eventuell fertige Treiber IC`s oder muss ich da für jeden Ausgang Transistoren benutzen.
Ich habe auch schon mal über Opto-Koppler nach gedacht damit wäre sicher gestellt dass dem UNO nichts passiert. das wird dann allerdings eine Große Platine.

Vielleicht hat ja jemand eine Idee dazu :fool:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#81

Beitrag von MicroBahner »

Hallo Rainer,
ts250x hat geschrieben: So 4. Aug 2019, 10:18 1. Hast du schon einen Plan bis wann in etwa die Funktionen: "withEnable" freigeschaltet sind
Auf github habe ich geschrieben:

Code: Alles auswählen

Version Release Date 	Description
1.2.0 	2019-08-?? 	managing an enable pin for steppers is possible
Mal sehen, ob das mit dem August noch klappt :roll: . Da ich da auch noch ein paar Tage in Urlaub bin ...
ts250x hat geschrieben: So 4. Aug 2019, 10:18 Meinst du damit : switch-case anstatt: if (results.value == zu benutzen?
Genau das.

Code: Alles auswählen

  T1Stepper.setRampLen( 50 );  // doppelte Eingabe der Rampenlänge ??
Wenn Du die Rampe schon beim SetSpeedSteps() mit angegeben hast, musst Du sie nicht nochmal angeben.

Code: Alles auswählen

if (results.value == 16753245)  // Taste CH-
digitalWrite (ledPin7,HIGH);
digitalWrite (ledPin8,HIGH);
digitalWrite (ledPin9,HIGH);
if (results.value == 16736925)  // Taste CH
Das macht nicht das was Du willst. Wenn Du mehrere Anweisungen von einem if abhängig machen sillst, musst du sie in { } einschließen.

Code: Alles auswählen

if (results.value == 16753245)  { // Taste CH-
  digitalWrite (ledPin7,HIGH);
  digitalWrite (ledPin8,HIGH);
  digitalWrite (ledPin9,HIGH);
}
if (results.value == 16736925)  // Taste CH
Und versuche deinen Code mit Einrückungen logisch zu formatieren. Dann ist er wesentlich besser lesbar ( ctrl-T ist dein Freund ;) )
ts250x hat geschrieben: So 4. Aug 2019, 10:18 Weiterhin muss ich mir Gedanken machen wie ich die Strombelastung vom UNO reduzieren kann für die vielen LED`s
Gibt es dafür eventuell fertige Treiber IC`s oder muss ich da für jeden Ausgang Transistoren benutzen.
Ja, da gibt es schon IC's - z.B. den ULN2803.
Aber brauchst Du das wirklich? Wenn Du keine Scheinwerfer nachbilden willst, brauchen aktuelle Leds doch kaum mehr als 2mA für eine angemessene Helligkeit. Und da kannst Du schon einige anschließen. Das würde ich erstmal ausprobieren, ob das nicht reicht.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#82

Beitrag von ts250x »

Hallo Franz-Peter,
MicroBahner hat geschrieben: So 4. Aug 2019, 21:49 Mal sehen, ob das mit dem August noch klappt . Da ich da auch noch ein paar Tage in Urlaub bin ...
Dein Urlaub hat natürlich Vorrang, dazu wünsche ich Dir schon mal "Gute erholsame Tage" :D

Zu dem Switch case habe ich dann doch noch die ein oder andere Frage: Steht im Sketch
Im Sketch habe ich auch mal die 3 LED`s zusammen geführt so dass diese hoffentlich alle gleichzeitig an und aus gehen.
Der Compiler hat da jetzt mal nicht gemeckert,,,,,,, aber ob es das auch macht wie ich mir das Vorstelle ???

Code: Alles auswählen

switch (results.value) // muss das dann immer aufgerufen werden oder nur einmal ?
    case 16753245:  // Taste CH-
    digitalWrite [(ledPin7,HIGH),(ledPin8,HIGH),(ledPin9,HIGH)];
MicroBahner hat geschrieben: So 4. Aug 2019, 21:49 T1Stepper.setRampLen( 50 ); // doppelte Eingabe der Rampenlänge ??
Wenn Du die Rampe schon beim SetSpeedSteps() mit angegeben hast, musst Du sie nicht nochmal angeben.
Das dachte ich mir schon deshalb die Fragezeichen dahinter = Gut zu wissen :oops:
MicroBahner hat geschrieben: So 4. Aug 2019, 21:49 Und versuche deinen Code mit Einrückungen logisch zu formatieren. Dann ist er wesentlich besser lesbar ( ctrl-T ist dein Freund )
Schön das ich Freunde habe die mir nicht bekannt sind :mrgreen: das werde ich zukünftig dann so machen, wenn ich es nicht vergesse :redzwinker:
MicroBahner hat geschrieben: So 4. Aug 2019, 21:49 ts250x hat geschrieben: ↑So 4. Aug 2019, 11:18
Weiterhin muss ich mir Gedanken machen wie ich die Strombelastung vom UNO reduzieren kann für die vielen LED`s
Gibt es dafür eventuell fertige Treiber IC`s oder muss ich da für jeden Ausgang Transistoren benutzen.
Ja, da gibt es schon IC's - z.B. den ULN2803.
Aber brauchst Du das wirklich? Wenn Du keine Scheinwerfer nachbilden willst, brauchen aktuelle Leds doch kaum mehr als 2mA für eine angemessene Helligkeit. Und da kannst Du schon einige anschließen. Das würde ich erstmal ausprobieren, ob das nicht reicht.
Ja von den 2mA Led´s hab ich auch schon gehört und auch schon danach gesucht ....... auch einige gefunden leider sind die meisten dann eher Farbig.
Von meinem letzten Projekt habe ich noch ein paar Smd
LED`s die habe ich schon auf die hälfte des Vorwärtsstroms begrenzt also mit 10 mA machen die noch genügend hell, ob diese bei 2 mA schon leuchten muss ich mal ausprobieren da fehlen mir momentan nur die Richtigen Widerstände

Nun freue ich mich schon auf eine Antwort ob ich das mit dem Switch case richtig geschrieben habe ....
Bis demnächst
Gruß Rainer bleibt gesund

vikr
EuroCity (EC)
Beiträge: 1404
Registriert: So 23. Okt 2011, 19:05
Nenngröße: H0
Stromart: AC
Steuerung: PC
Gleise: MMärklin C
Alter: 101

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#83

Beitrag von vikr »

Hallo
ts250x hat geschrieben: Mo 5. Aug 2019, 09:53
Ja von den 2mA Led´s hab ich auch schon gehört und auch schon danach gesucht ....... auch einige gefunden leider sind die meisten dann eher Farbig.
Licht ist immer farbig. Die richtige Mischung und Intensität der Farben erscheint dem menschlichem Auge weiß. Eine weiß erscheinende LED besteht aus mind. drei LEDs, benötigt also etwa dreimal soviel Strom wie eine einfarbige LED gleichen Typs.

MfG

vik
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#84

Beitrag von MicroBahner »

vikr hat geschrieben: Mo 5. Aug 2019, 10:53 Eine weiß erscheinende LED besteht aus mind. drei LEDs,
Das gilt aber nur für RGB-Led's, die durch entsprechende Ansteuerung unterschiedliche Farben erzeugen können.
Rein weiße Led's arbeiten anders. Da wird eine blaue LED mit entsprechenden Leuchtstoffen kombiniert.
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#85

Beitrag von MicroBahner »

Hallo Rainer,
ts250x hat geschrieben: Mo 5. Aug 2019, 09:53 Nun freue ich mich schon auf eine Antwort ob ich das mit dem Switch case richtig geschrieben habe ....
tja, wie soll ich's sagen ... Du wirst dich über meine Antwort wohl nicht freuen :roll: ...

Obwohl es rein syntaktisch korrekt ist (deshalb gibt es ja keine Fehlermeldung), ist es völliger Humbug. Wenn Du im Compiler die Warnungen einschaltest, sagt er dir das auch. C++ eignet sich nicht dazu, nach der Methode Try&Error vorzugehen. Du verplemperst nur deine wertvolle Zeit.
Ich bleibe dabei - Du musst dir dringend die Grundlagen erarbeiten, z.B mit dem Link, den ich dir oben gepostet habe. Und mit kleinen Sketchen anfangen, die Du dann auch zum Laufen bringst, bevor es weitergeht.
Ich verstehe ja, dass das für dich wohl eher mühsam und vielleicht langweilig ist, und Du möglichst schnell zu einem Ergebnis bei deinem eigentliche Projekt kommen willst. Aber Du vergeudest nur Zeit. Wenn Du dich jetzt erstmal in die Grundlagen einarbeitest, geht es hinterher umso schneller, und insgesamt wirst Du Zeit sparen.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#86

Beitrag von ts250x »

Hallo Franz-Peter, Hallo Bodo,Hallo @ All
MicroBahner hat geschrieben: Mo 5. Aug 2019, 17:26 tja, wie soll ich's sagen ... Du wirst dich über meine Antwort wohl nicht freuen ...
Täusche dich da mal nicht, ich bin immer für offene Ehrliche Worte zu haben, die sind mir lieber als irgend welche Floskeln, die im Ende nichts sagen.
Von daher: :gfm:
MicroBahner hat geschrieben: Mo 5. Aug 2019, 17:26 Obwohl es rein syntaktisch korrekt ist (deshalb gibt es ja keine Fehlermeldung), ist es völliger Humbug.
Da hatte ich den einzigen Sketch im Hinterkopf den ich dazu gefunden hatte, habe.

Code: Alles auswählen

if (irrecv.decode(&results)) { //Wenn etwas gelesen wurde dann...
  //Ausgabe des Wertes auf die Serielle Schnittstelle.
  int value = results.value;
  switch (value){  // hier hatte ich die geschweifte Klammer nicht gesehen! Da habe ich doch gleich eine Idee :mrgreen: 
  case 16724175 : //Taste 1
In der PDF "Arduino-Referenz" quasi deine Empfehlung,gibt es auf Seite 39 das hier zu lesen:
switch / case Anweisungen
Ähnlich wie if-Anweisungen erlauben die switch/case-Anweisungen die Ausführung bestimmter
Abläufe zu kontrollieren. Eine switch-Anweisung vergleicht den Wert einer Variablen mit den Werten
aus den case-Anweisungen. Wenn eine Übereinstimmung gefunden wird, wird das Programm ab der

jeweiligen case-Anweisung bis zum nächsten break ausgeführt.
Syntax
switch (var) {
case label:
// Anweisungen
break;
case label:
// Anweisungen
break;
default:
// Anweisungen
}
Parameter
var: eine Variable deren Wert zwischen den einzelnen case-Anweisungen verglichen wird
label: ein Wert der mit var verglichen wird
Beispiel
switch (var) {
case 1:
//etwas tun wenn var == 1
break;
case 2:
//etwas tun wenn var == 2
break;
default:
// wenn nichts zutrifft, führe default (standard) code aus
// default ist optional, sollte aber immer hinzugefügt werden
}


Damit kann ich nichts anfangen es sollen ja keine Werte verglichen werden.......und der Hinweis mit "bis zum nächsten break" hat mich dann endgültig von dieser Anwendung gebracht...
MicroBahner hat geschrieben: Mo 5. Aug 2019, 17:26 Wenn Du im Compiler die Warnungen einschaltest, sagt er dir das auch.

Wo , bitte kann man das Einschalten ??
MicroBahner hat geschrieben: Mo 5. Aug 2019, 17:26 Ich verstehe ja, dass das für dich wohl eher mühsam und vielleicht langweilig ist, und Du möglichst schnell zu einem Ergebnis bei deinem eigentliche Projekt kommen willst. Aber Du vergeudest nur Zeit. Wenn Du dich jetzt erstmal in die Grundlagen einarbeitest, geht es hinterher umso schneller, und insgesamt wirst Du Zeit sparen.
Auch auf die Gefahr hin dass ich mich hier als "unfähig Oute" ich kann mit diesen Beispielen nichts Anfangen :bigeek:
Für mich ist es in der Tat wichtiger das der Sketch das macht was ich erwarte.......Und wenn mir jemand schreibt wie das mit dem "switch/case"
geschrieben wird dann reicht mir das vollkommen aus, ich werde in diesem Leben bestimmt kein Programmierer mehr werden.... :D :mrgreen:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#87

Beitrag von MicroBahner »

Hallo Rainer,
ok, vielleicht hatte ich die falsche Zeile zitiert. Das mit dem 'Humbug' bezog sich weniger auf den switch-case ( mit dem winzigen Ausschnitt konnte man da sowieso nichts zu sagen ) sondern auf deinen Versuch, die 3 Leds gleichzeitig ein- und auszuschalten.
Das hier ist der Humbug:

Code: Alles auswählen

    digitalWrite [(ledPin7,HIGH),(ledPin8,HIGH),(ledPin9,HIGH)];
ts250x hat geschrieben: Di 6. Aug 2019, 07:54 Damit kann ich nichts anfangen es sollen ja keine Werte verglichen werden......
Natürlich sollen Werte verglichen werden: Du willst den empfangenen Code mit allen Codewerten vergleichen, die etwas Auslösen sollen. Und genau für sowas - einen (variablen) Wert mit vielen anderen konstanten Werten vergleichen - benutzt man die switch Anweisung.
ts250x hat geschrieben: Di 6. Aug 2019, 07:54 "bis zum nächsten break" hat mich dann endgültig von dieser Anwendung gebracht...
Wieso? Genau die Anweisungen, die zwischen dem 'case' stehen, der zum empfangenen Code passt und dem nächsten 'break' werden ausgeführt, wenn dieser Code empfangen wird. Das ist doch genau das, was Du willst.
ts250x hat geschrieben: Di 6. Aug 2019, 07:54 Für mich ist es in der Tat wichtiger das der Sketch das macht was ich erwarte.....
Das macht er aber nicht von alleine, das musst Du programmieren.
ts250x hat geschrieben: Di 6. Aug 2019, 07:54 ich werde in diesem Leben bestimmt kein Programmierer mehr werden...
Man muss kein Profi-Programmierer werden, um mit Arduino zu arbeiten. Einige grundlegende Kenntnisse reichen da schon aus. Wenn Du aber gar kein Programmierer werden willst, dann lass das mit dem Arduino sein - oder such dir einen Dienstleister, der das für dich macht.

In den Anfängen der Microprozessortechnik, als die Euphorie groß war, dass man jetzt mit einer HW so viel unterschiedliche Dinge machen kann, hat mal ein schlauer Mann gesagt:
Einen Microprozessor kann man nicht programmieren, den MUSS man programmieren.
P.S. Die Warnungen kannst Du in der IDE unter Datei-> Voreinstellungen einschalten. Dort unter 'Compilerwarnungen' 'alle' auswählen.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#88

Beitrag von ts250x »

Hallo Franz-Peter, Hallo @ All,
MicroBahner hat geschrieben: Di 6. Aug 2019, 08:49 Das mit dem 'Humbug' bezog sich weniger auf den switch-case ( mit dem winzigen Ausschnitt konnte man da sowieso nichts zu sagen )
Kann ich jetzt wenn ich das weiter unten lese verstehen.
Zum Humbug: in der Tat habe ich da 3-10 verschiedene Varianten versucht bis ich auf die Glorreiche Idee kam wenn digitalWrite ein oder Ausschaltet
Dann muss eben erst die Große Klammer geöffnet werden danach die einzelnen Anweisungen in separaten Klammern und zu guter Letzt auf eine geöffnete Klammer folgt immer eine Geschlossene vom gleichen Typ.....Da fällt mir gerade ein für eine Echte RGB Led benutzt man ja auch 3 Ausgänge vielleicht finde ich ja dort die Lösung.

Nun noch zum Switch/case:
MicroBahner hat geschrieben: Di 6. Aug 2019, 08:49 Natürlich sollen Werte verglichen werden: Du willst den empfangenen Code mit allen Codewerten vergleichen, die etwas Auslösen sollen. Und genau für sowas - einen (variablen) Wert mit vielen anderen konstanten Werten vergleichen - benutzt man die switch Anweisung.
Tja was soll ich dazu schreiben... ganz klar..... das habe ich anders verstanden bzw. eben nicht verstanden.
MicroBahner hat geschrieben: Di 6. Aug 2019, 08:49 Genau die Anweisungen, die zwischen dem 'case' stehen, der zum empfangenen Code passt und dem nächsten 'break' werden ausgeführt, wenn dieser Code empfangen wird. Das ist doch genau das, was Du willst.
Zum Break .. das habe ich so verstanden dass dieser den Arduino oder den Sketch an dieser Stelle abschaltet. Leider kann ich mich momentan nicht mehr genau erinnern wo ich das gelesen habe ..... bei gefühlten 1000 Seiten aus verschieden Quellen kann ich das nicht mehr schreiben.
MicroBahner hat geschrieben: Di 6. Aug 2019, 08:49 Man muss kein Profi-Programmierer werden, um mit Arduino zu arbeiten. Einige grundlegende Kenntnisse reichen da schon aus. Wenn Du aber gar kein Programmierer werden willst, dann lass das mit dem Arduino sein

Ich hoffe das ich Dir da nicht auf den Schlipps getreten bin..... das möchte ich unbedingt vermeiden..... denn ich finde es einfach Toll dass du mir hier Antwortest :gfm: :gfm: :gfm:
MicroBahner hat geschrieben: Di 6. Aug 2019, 08:49 P.S. Die Warnungen kannst Du in der IDE unter Datei-> Voreinstellungen einschalten. Dort unter 'Compilerwarnungen' 'alle' auswählen.
DANKE für den Tipp, das werde ich gleich mal Testen...
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#89

Beitrag von MicroBahner »

:baeh: Hallo Rainer,
ts250x hat geschrieben: Di 6. Aug 2019, 10:09 Zum Break .. das habe ich so verstanden dass dieser den Arduino oder den Sketch an dieser Stelle abschaltet.
Das ist auf jeden Fall falsch. Mit 'break' kannst Du eine Programmschleife oder eben das switch-Statement verlassen. Nicht mehr und nicht weniger.
ts250x hat geschrieben: Di 6. Aug 2019, 10:09 Zum Humbug: in der Tat habe ich da 3-10 verschiedene Varianten versucht bis ich auf die Glorreiche Idee kam wenn digitalWrite ein oder Ausschaltet
Wenn Du 3 Leds ein- oder ausschalten willst, musst Du eben 3 einzelne digitalWrite-Anweisungen benutzen.
ts250x hat geschrieben: Di 6. Aug 2019, 10:09 Ich hoffe das ich Dir da nicht auf den Schlipps getreten bin.....
Ich trage keine Schlipse :mrgreen: . Warum solltest Du mir auf selbigen getreten sein?

Ich sage halt meine Meinung, wie ich das mit dem Arduino-Programmieren sehe. Wenn ich zu dem Entschluß komme, dass Du ein hoffnungsloser Fall bist, stelle ich einfach meine Antworten ein :aetsch: :fool:
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#90

Beitrag von ts250x »

Hallo Franz-Peter, Hallo liebe Mitleser,
Heute fange ich mal von hinten an.
MicroBahner hat geschrieben: Di 6. Aug 2019, 21:38 Wenn ich zu dem Entschluß komme, dass Du ein hoffnungsloser Fall bist, stelle ich einfach meine Antworten ein
Franz-Peter, schön dass du mich noch nicht aufgegeben hast...... :fool:

Die Fehlermeldungen habe ich jetzt eingeschaltet, Oh Je was da alles an Fehlern gemeldet wird, da habe ich noch Viel zu Tun :oops:

Meine Idee bei den RGB Led`s auf eine Lösung zu stoßen war leider ohne Erfolg......

Mein nächster Ansatz ist jetzt, das vielleicht mit Arry`s umzusetzen.
Schau mer mal......... :redzwinker:

Gestern habe ich mal meine zur Verfügung stehenden Spannungsquellen aus gesucht damit ich da Zukünftig eine Grundlage habe,
es wird ein 12 V DC mit 2 A werden.

Und wegen der Belastung vom UNO dann doch mal lieber vorsorglich diese ULN 2803 bestellt.

So nun werde ich weiter lesen hoffentlich auch etwas dabei lernen und mich hier in einer Fernen Zukunft wieder melden wenn ich etwas vorzeigbares FUNKTIONIERENDES zusammen habe. :fool:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#91

Beitrag von MicroBahner »

ts250x hat geschrieben: Mi 7. Aug 2019, 08:50 Die Fehlermeldungen habe ich jetzt eingeschaltet, Oh Je was da alles an Fehlern gemeldet wird, da habe ich noch Viel zu Tun :oops:
Da hast Du ja nun auch die Warnungen eingeschaltet. Die bedeuten ja nicht in jedem Fall einen Fehler - das muss man überprüfen. Wenn nur Warnungen erzeugt werden, generiert die IDE auch einen Code für den Arduino.
Die Warnungen können auch schonmal von den Libs kommen, die Du einbindest. Selbst einige der Systemlibs erzeugen Warnungen. Auch die MobaTools-Version, die über den Bibliotheksverwalter installiert wird, erzeugt leider noch allerhand Warnungen :oops: . Die sind zwar überprüft und führen nicht zu einem Fehlverhalten. Trotzdem habe ich das aktuell soweit verbessert, dass keine Warnungen mehr erzeugt werden. Das ist immer besser :wink: .
Die Warnungen der Libs erscheinen aber nur beim ersten Übersetzen. Sie verschwinden, wenn Du Änderungen am Sketch machst, und dann nochmal übersetzt. Dann siehst Du nur noch die Warnungen, die wirklich von deinem Sketch stammen.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#92

Beitrag von ts250x »

Hallo Franz-Peter,
das musste ich eben bei einem Fertigen Sketch auch feststellen der Sketch ist der von der IRremote den ich schon verwendet habe....
da sind schon etliche Fehler Meldungen gekommen..

Das kann ja Heiter werden.... Da bleibt wohl nichts anderes übrig als das mit dem UNO in Wirklichkeit zu testen.....

Auch die Meldungen selbst sind für mich eher schwer zu verstehen, selbst nach der Übersetzung im www kommen da nicht eindeutige Dinge heraus

Andere Frage noch : wie oft kann man denn den UNO Neu brennen bis er die Grätsche macht?? <1000 mal oder mehr ??

Auf jeden Fall DANKE für die Nachricht :P
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#93

Beitrag von MicroBahner »

ts250x hat geschrieben: Mi 7. Aug 2019, 10:17 Andere Frage noch : wie oft kann man denn den UNO Neu brennen bis er die Grätsche macht?? <1000 mal oder mehr ??
Lt. Datenblatt mindestens 10.000 mal. In der Praxis wohl eher noch öfter.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#94

Beitrag von ts250x »

Hallo Franz-Peter,

Gut zu wissen ... da habe ich ja noch mindestens 9997 versuche Frei. :fool:

Und falls es jemand interessiert die Treiber sind eingetroffen, sogar Kühlkörper sind dabei :mrgreen:

Also wird meine nächste Aufgabe darin bestehen ein kleines Programm zu schreiben damit ich die Ströme einstellen kann um dann mal die Motörchen drehen zu sehen :mrgreen: :mrgreen:
Eine Platine muss auch noch geplant werden wo alles seinen Platz findet..... Ergo es gibt viel zu tun..... :fool:
Gruß Rainer bleibt gesund
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#95

Beitrag von ts250x »

Hallo Franz-Peter,
so mein Sketch zum ausprobieren eines Motors wäre soweit fertig
Soweit = Compiler hat keine Fehlermeldung angezeigt
Falls es deine Wertvolle Zeit zulässt könntest Du dir mal das Anschauen, andere Arduino Kenner selbstverständlich gerne auch :D
Als kleiner Hinweis: die delay Zeiten mit 5 sec habe ich absichtlich eingebaut.
Der zu testen Motor soll jeweils 1700 Stepps nach rechts und anschließend nach links machen also mit Taste 2
Hier der Code aus dem Arduino kopiert mit Strg+T formatiert.

Code: Alles auswählen

#include <MobaTools.h>
#include <IRremote.h>
#include <Arduino.h>
Stepper4 T1Stepper(200, A4988);
int irPin = 13;                        //Pin am Arduino Nano für den IR Receiver
IRrecv irrecv(irPin);                  //Objekt initialisieren für die IR Übertragung
decode_results results;

void setup()
{
  T1Stepper.attach( 10, 11 );   // Step und Dir-Pin
  T1Stepper.setSpeedSteps( 200,100);

  pinMode(irPin, INPUT);    //Den IR Pin als Eingang deklarieren.
  Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen.
}

void loop()
{
  if (irrecv.decode(&results))
    Serial.println (results.value, DEC);

  if (results.value == 16724175)           // wenn der Infrarot Empfänger die Zahl erkennt
    T1Stepper.doSteps(1700);                  //      Taste 1       macht 1700 Schritte nach „rechts“
    delay(5000);
  if (results.value == 16718055)                                  // Taste 2
    T1Stepper.doSteps(-1700);                            // macht 1700 Schritte nach „links“
    delay(5000);
}
Die Platine habe ich auch schon mal so Grob entworfen. :mrgreen:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#96

Beitrag von MicroBahner »

Hallo Rainer,
ts250x hat geschrieben: Mi 7. Aug 2019, 18:10 Hier der Code aus dem Arduino kopiert mit Strg+T formatiert.
Da hast Du aber geschummelt - so ist der mit ctrl-T nicht formatiert worden. Das sah da bestimmt so aus:

Code: Alles auswählen

  if (results.value == 16724175)           // wenn der Infrarot Empfänger die Zahl erkennt
    T1Stepper.doSteps(1700);                  //      Taste 1       macht 1700 Schritte nach „rechts“
  delay(5000);
  if (results.value == 16718055)                                  // Taste 2
    T1Stepper.doSteps(-1700);                            // macht 1700 Schritte nach „links“
  delay(5000);
Das die delay nicht eingerückt sind hat seinen Grund: die werden nämlich unabhängig von der if-Abfrage immer ausgeführt. Du musst dich mit der Bedeutung der geschweiften Klammer { } vertraut machen. Dann rückt das ctrl-T das auch so ein:

Code: Alles auswählen

  if (results.value == 16724175) {           // wenn der Infrarot Empfänger die Zahl erkennt
    T1Stepper.doSteps(1700);                 //      Taste 1       macht 1700 Schritte nach „rechts“
    delay(5000);
  }
  if (results.value == 16718055) {            // Taste 2
    T1Stepper.doSteps(-1700);                 // macht 1700 Schritte nach „links“
    delay(5000);
  }
Da fehlen aber noch mehr geschweifte Klammern.
Außerden fehlen Anweisungen für den Infrarotempfänger. Das musst Du aber doch schonmal hinbekommen haben, da Du die Tasten ja auslesen konntest.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#97

Beitrag von ts250x »

Hallo Franz-Peter,
MicroBahner hat geschrieben: Mi 7. Aug 2019, 20:49 Da hast Du aber geschummelt - so ist der mit ctrl-T nicht formatiert worden. Das sah da bestimmt so aus:
Eventuell liegt das daran das ich erst alles in Word schreibe bzw. kopiere dann in die Oberfläche vom Arduino einfüge , danach markiere ich alles auf der Oberfläche vom Arduino, drücke Strg+t dann formatiert sich das ganze so wie ich es dann hier hinein kopiere.... :idea:
Du schriebst allerdings ctrl+T also das Große T das habe ich nicht getan......... na ja zum schummeln
das würde doch nur bedeuten dass ich mich selbst betrüge ... daran habe ich kein Interesse... und andere möchte ich auch nicht betrügen :!:
MicroBahner hat geschrieben: Mi 7. Aug 2019, 20:49 Du musst dich mit der Bedeutung der geschweiften Klammer { } vertraut machen. Dann rückt das ctrl-T das auch so ein:
Tja die Bedeutung der Klammern, da habe ich falsche Vorstellungen..... ich dachte im void loop genügt am Anfang und am Ende eine...
MicroBahner hat geschrieben: Mi 7. Aug 2019, 20:49 Da fehlen aber noch mehr geschweifte Klammern.
Außerden fehlen Anweisungen für den Infrarotempfänger. Das musst Du aber doch schonmal hinbekommen haben, da Du die Tasten ja auslesen konntest.
Da hast absolut Recht :D ich war zu blöd die Richtigen notwendigen Zeilen ein zu kopieren und dabei habe ich auch noch geschweifte Klammern weggelassen die eigentlich im Sketch enthalten sind...... Asche über mein Haupt oder besser geschrieben Entschuldigung :oops: :oops:
Jetzt traue ich mich nicht mehr hier noch einen weiteren Sketch hochzuladen, denn ich möchte Deine kostbare Zeit nicht in Anspruch nehmen für
meinen Dünnpfiff........... :oops: :oops:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#98

Beitrag von MicroBahner »

ts250x hat geschrieben: Do 8. Aug 2019, 07:36 Eventuell liegt das daran das ich erst alles in Word schreibe bzw. kopiere dann in die Oberfläche vom Arduino einfüge
??? Welchen Vorteil siehst Du darin? Word ist normalerweise nicht geeignet um Programme zu schreiben.
ts250x hat geschrieben: Do 8. Aug 2019, 07:36 Du schriebst allerdings ctrl+T also das Große T das habe ich nicht getan....
Hast Du einen Taste, auf der ein kleines 't' drauf ist? Auf meiner Tastatur gibt es nur eine mit 'T' drauf - und die eben zusammen mit ctrl ( oder 'Strg' - auf einer deutschen Tastatur ) drücken. Strg+shift+T bewirkt gar nichts.
ts250x hat geschrieben: Do 8. Aug 2019, 07:36 Tja die Bedeutung der Klammern, da habe ich falsche Vorstellungen
Vielleicht hilf dir das.
Benutzeravatar

Threadersteller
ts250x
InterRegioExpress (IRE)
Beiträge: 259
Registriert: Sa 11. Mär 2017, 16:10
Nenngröße: H0
Stromart: digital
Steuerung: MultiMaus Tablett
Gleise: Roco-line o Bettung
Wohnort: Vorderpfalz
Alter: 60
Deutschland

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#99

Beitrag von ts250x »

Hallo Franz-Peter,
MicroBahner hat geschrieben: Do 8. Aug 2019, 09:36 ??? Welchen Vorteil siehst Du darin? Word ist normalerweise nicht geeignet um Programme zu schreiben.
In Word kann ich zum einen die Schriftgröße anpassen, zum anderen aus Vorlagen mir Bausteine heraus kopieren und in einem anderen Dokument zusammen stellen. Für dich ist das sicherlich ein Nonsens....
MicroBahner hat geschrieben: Do 8. Aug 2019, 09:36 Hast Du einen Taste, auf der ein kleines 't' drauf ist?
ich schreibe es mal so: wenn ich die Umschalttaste nicht drücke dann erscheint da schon ein" t"
inzwischen habe ich es ausprobiert..... auch mit Großem T da formatiert das auch.

So sieht das dann aus , jetzt direkt aus der Arduino Oberfläche kopiert

Code: Alles auswählen

#include <MobaTools.h>
#include <IRremote.h>
#include <Arduino.h>
Stepper4 T1Stepper(200, A4988);
int RECV_PIN = 13;                          //Pin am Arduino Nano für den IR Receiver
IRrecv irrecv(RECV_PIN);                   //Objekt initialisieren für die IR Übertragung
decode_results results;

void setup()
{
  T1Stepper.attach( 10, 11 );   // Step und Dir-Pin
  T1Stepper.setSpeedSteps( 200, 50 );
  irrecv.enableIRIn();   //Dieser Befehl initialisiert den Infrarotempfänger.

  pinMode(RECV_PIN, INPUT);         //Den IR Pin als Eingang deklarieren.
  Serial.begin(9600);             //Serielle kommunikation mit 9600 Baud beginnen.
}

void loop()
{

  if (irrecv.decode(&results)) {
    Serial.println (results.value, DEC);
    irrecv.resume();
  }




  if (results.value == 16724175) {          // wenn der Infrarot Empfänger die Zahl erkennt

    T1Stepper.doSteps(1700);                 //  Taste 1 macht 1700 Schritte nach „rechts“
    delay(5000);
  }


  if (results.value == 16718055) {           // Taste 2
    T1Stepper.doSteps(-1700);                // macht 1700 Schritte nach „links“
    delay(5000);
  }
}
Bis vor einer viertel Std. bekam ich ständig diese Fehlermeldung:
expected unqualified-id before 'if'

Und weis der Teufel wie ich das weg bekommen habe im Oben eingefügten Sketch zeigt er auf einmal keine Fehler mehr an.
Dazwischen hatte ich } else { zwischen die > irrecv.resume(); } und if (results.value == 16718055) geschrieben.
Nach dem Löschen des" else" Eintrags mit den beiden Klammern war es auf einmal Ohne Fehlermeldung.....

Jetzt muss das nur noch funktionieren da komme ich wahrscheinlich erst morgen dazu...

Vielen Dank für deinen Link da gibt es noch vieles zu lesen ... :mrgreen:

UUps : da habe ich noch etwas vergessen zu Fragen:
es geht um die Stepperrampe diese 50 wären ja gerade mal eine 1/4 Umdrehung bei 200 für eine ganze.
Jetzt meine Farge wie viele Stepps würdest du da setzen ? ............300 oder noch mehr ? :redzwinker:
Gruß Rainer bleibt gesund
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2544
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: Hilfe zu Arduino(UNO)Sketch gesucht für FB

#100

Beitrag von MicroBahner »

ts250x hat geschrieben: Do 8. Aug 2019, 10:58 In Word kann ich zum einen die Schriftgröße anpassen, zum anderen aus Vorlagen mir Bausteine heraus kopieren und in einem anderen Dokument zusammen stellen.
Das geht doch in der IDE auch alles. Die Schriftgröße kannst Du unter Datei->Voreinstellungen ändern ( Feld 'Editor-Textgröße' ). Und zum hin- und herkopieren kannst Du die IDE auch mehrfach starten.
Die IDE hat den ganz wesentlichen Vorteil, dass sie weis, dass Du ein C++-Programm schreibst. Wenn Du da eintippst, werden Schlüsselworte gleich entsprechend farblich markiert ( da merkst Du Toppfehler gleich ), und wenn Du z.B. einen Block mit einer '{' startest, setzt sie dir gleich die dazugehörige '}' und rückt auch gleich ein.
Alle Texteditoren, die seitenorientiert und mit Formatierungen arbeiten, sind eigentlich zum Schreiben von Programmen ungeeignet. Es gibt sicherlich komfortablere Programmeditoren als die Arduino-IDE, z.B. Notepad++, aber Programme die eher zum Schreiben von Briefen und Dokumenten gedacht sind, gehören sicher nicht dazu. Und die Arduino-IDE hat den deutlichen Vorteil, dass sie auch alle Arduino-spezifischen Schlüsselworte kennt.
ts250x hat geschrieben: Do 8. Aug 2019, 10:58 Dazwischen hatte ich } else { zwischen die > irrecv.resume(); } und if (results.value == 16718055) geschrieben.
Was wolltest Du denn damit bezwecken?
ts250x hat geschrieben: Do 8. Aug 2019, 10:58 Jetzt meine Farge wie viele Stepps würdest du da setzen ? ...
Das kann man so allgemein nicht sagen. Ich kenne weder die Eigenchaften deiner Stepper, noch deine Mechanik. Letzendlich wirst Du ausprobieren müssen, was am besten passt. Ein Anhaltspunkt ist die Zahl der Steps für den gesamten Verfahrweg. 10% davon als Rampe wäre ein möglicher Startwert für Versuche. Ist aber vermutlich weniger ein technisches als ein optisches 'Problem'.
Antworten

Zurück zu „Elektrik und Elektronik“