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
Einstieg Arduino Mega
07.01.2017, 20:17
Beitrag #9
RE: Einstieg Arduino Mega
(07.01.2017 19:53)Markus0815 schrieb:  Mir graut nun vor dem Wust an Tasterabfragen, der da noch kommt. Geht es eleganter? Aber auch verständlich für einen Einsteiger?

Besten Dank
Markus
Bitte setze Deinen Sketch in Codetags (oben # im Foreneditor oder [*code] davor und [*/code] dahinter - ohne die *).
Das kannst Du auch noch nachträglich durch Editieren tun. Bitte mach das, der Sketch ist besser zu lesen, besonders auf mobilen Geräten.

Beschreibe doch mal konkret und detailiert was Du mit den vielen Tasten tun willst. Dann können wir gemeinsam überlegen, wie wir die sinnvoll abfragen und auswerten können.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2017, 21:17
Beitrag #10
RE: Einstieg Arduino Mega
(07.01.2017 20:17)Tommy56 schrieb:  
(07.01.2017 19:53)Markus0815 schrieb:  Mir graut nun vor dem Wust an Tasterabfragen, der da noch kommt. Geht es eleganter? Aber auch verständlich für einen Einsteiger?

Besten Dank
Markus
Bitte setze Deinen Sketch in Codetags (oben # im Foreneditor oder [*code] davor und [*/code] dahinter - ohne die *).
Das kannst Du auch noch nachträglich durch Editieren tun. Bitte mach das, der Sketch ist besser zu lesen, besonders auf mobilen Geräten.

Beschreibe doch mal konkret und detailiert was Du mit den vielen Tasten tun willst. Dann können wir gemeinsam überlegen, wie wir die sinnvoll abfragen und auswerten können.

Gruß Tommy

Hallo Tommy,

ich möchte einfach nur jedes Servo mit je 2 Tastern stellen. Eine alternative wären auch Schalter und darüber HIGH / LOW abfragen, das wäre allerdings für meinen Sohn dann nicht so einfach zu bedienen.

Im Grunde möchte ich alle Servos nur zwischen zwei Positionen nach jeweiligem Tastendruck stellen können. Ich bin da noch ganz rudimentär am Anfang, denn irgendwann (wenn ich das ganze auch verstanden habe) wäre es schön, wenn die Servoposition gespeichert wird. Erstmal reicht es mir allerdings, wenn Sohnemann endlich damit spielen kann.

Wobei die Taster Kupfernägel und ein Stift sein werden. Aber das ist ein anderes Thema. Die Servoposition wird dann über je eine grüne bzw. rote LED angezeigt. Da reicht ja ein Ausgang, da die LED dann gegen HIGH / LOW Potential geschaltet werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2017, 21:34 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2017 21:38 von Tommy56.)
Beitrag #11
RE: Einstieg Arduino Mega
(07.01.2017 21:17)Markus0815 schrieb:  
(07.01.2017 20:17)Tommy56 schrieb:  
(07.01.2017 19:53)Markus0815 schrieb:  Mir graut nun vor dem Wust an Tasterabfragen, der da noch kommt. Geht es eleganter? Aber auch verständlich für einen Einsteiger?

Besten Dank
Markus
Bitte setze Deinen Sketch in Codetags (oben # im Foreneditor oder [*code] davor und [*/code] dahinter - ohne die *).
Das kannst Du auch noch nachträglich durch Editieren tun. Bitte mach das, der Sketch ist besser zu lesen, besonders auf mobilen Geräten.

Beschreibe doch mal konkret und detailiert was Du mit den vielen Tasten tun willst. Dann können wir gemeinsam überlegen, wie wir die sinnvoll abfragen und auswerten können.

Gruß Tommy

Hallo Tommy,

ich möchte einfach nur jedes Servo mit je 2 Tastern stellen. Eine alternative wären auch Schalter und darüber HIGH / LOW abfragen, das wäre allerdings für meinen Sohn dann nicht so einfach zu bedienen.

Im Grunde möchte ich alle Servos nur zwischen zwei Positionen nach jeweiligem Tastendruck stellen können. Ich bin da noch ganz rudimentär am Anfang, denn irgendwann (wenn ich das ganze auch verstanden habe) wäre es schön, wenn die Servoposition gespeichert wird. Erstmal reicht es mir allerdings, wenn Sohnemann endlich damit spielen kann.

Wobei die Taster Kupfernägel und ein Stift sein werden. Aber das ist ein anderes Thema. Die Servoposition wird dann über je eine grüne bzw. rote LED angezeigt. Da reicht ja ein Ausgang, da die LED dann gegen HIGH / LOW Potential geschaltet werden.
Der Versuch mit den Codetags ist lobenswert, Du solltest Dir aber meinen Text nochmal durchlesen. So funktioniert es nicht. Die [] kannst Du nicht weg lassen. Die * müssen raus.
So schwer ist das doch nicht zu verstehen.

Man könnte die Werte für jeden Motor (tasterpin1, tasterpin2, LEDPin, ...) in einer Struktur zusammenfassen und ein Array über diese Strukturen anlegen.
Dann über das Array laufen und jeweils die Taster auswerten und schalten. Wenn nix ist dann weiter zum nächsten.

Die Taster mit den Nägeln werden wohl fürchterlich prellen. Willst Du Hardware- oder Softwareentprellung machen?

Gruß Tommy

Edit: Warum hast Du Deinen falschen Beitrag im Nachbarthread nicht gelöscht?

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2017, 23:00
Beitrag #12
RE: Einstieg Arduino Mega
(07.01.2017 21:34)Tommy56 schrieb:  
(07.01.2017 21:17)Markus0815 schrieb:  
(07.01.2017 20:17)Tommy56 schrieb:  
(07.01.2017 19:53)Markus0815 schrieb:  Mir graut nun vor dem Wust an Tasterabfragen, der da noch kommt. Geht es eleganter? Aber auch verständlich für einen Einsteiger?

Besten Dank
Markus
Bitte setze Deinen Sketch in Codetags (oben # im Foreneditor oder [*code] davor und [*/code] dahinter - ohne die *).
Das kannst Du auch noch nachträglich durch Editieren tun. Bitte mach das, der Sketch ist besser zu lesen, besonders auf mobilen Geräten.

Beschreibe doch mal konkret und detailiert was Du mit den vielen Tasten tun willst. Dann können wir gemeinsam überlegen, wie wir die sinnvoll abfragen und auswerten können.

Gruß Tommy

Hallo Tommy,

ich möchte einfach nur jedes Servo mit je 2 Tastern stellen. Eine alternative wären auch Schalter und darüber HIGH / LOW abfragen, das wäre allerdings für meinen Sohn dann nicht so einfach zu bedienen.

Im Grunde möchte ich alle Servos nur zwischen zwei Positionen nach jeweiligem Tastendruck stellen können. Ich bin da noch ganz rudimentär am Anfang, denn irgendwann (wenn ich das ganze auch verstanden habe) wäre es schön, wenn die Servoposition gespeichert wird. Erstmal reicht es mir allerdings, wenn Sohnemann endlich damit spielen kann.

Wobei die Taster Kupfernägel und ein Stift sein werden. Aber das ist ein anderes Thema. Die Servoposition wird dann über je eine grüne bzw. rote LED angezeigt. Da reicht ja ein Ausgang, da die LED dann gegen HIGH / LOW Potential geschaltet werden.
Der Versuch mit den Codetags ist lobenswert, Du solltest Dir aber meinen Text nochmal durchlesen. So funktioniert es nicht. Die [] kannst Du nicht weg lassen. Die * müssen raus.
So schwer ist das doch nicht zu verstehen.

Man könnte die Werte für jeden Motor (tasterpin1, tasterpin2, LEDPin, ...) in einer Struktur zusammenfassen und ein Array über diese Strukturen anlegen.
Dann über das Array laufen und jeweils die Taster auswerten und schalten. Wenn nix ist dann weiter zum nächsten.

Die Taster mit den Nägeln werden wohl fürchterlich prellen. Willst Du Hardware- oder Softwareentprellung machen?

Gruß Tommy

Edit: Warum hast Du Deinen falschen Beitrag im Nachbarthread nicht gelöscht?

Würde ich gerne löschen, ich probiere es gleich nochmal.
Wenn ich Dich richtig verstanden habe sollte ich mir also ein Array ala

Code:
int TastArray [23] = {22,23 ....,44,45}

anlegen und dann mittels einer Schleife durchlaufen? Etwa so?

Code:
void loop()
{
for (i = 1; i <24 ; i++)
if (digitalRead(TastArray[i]) == LOW)
{
Servo_move(Servo1, Pos1);
digitalWrite(LED1, HIGH);
}

if (digitalRead(TastArray[i+1]) == LOW)
{
Servo_move(Servo1, Pos2);
digitalWrite(LED1, LOW);
}
delay(20);
}

Mein kleines Hirn qualmt gerade, da fehlt ja noch der entsprechende Servo und die Ausgabe. Aber ein sehr guter Hinweis, ich danke schonmal.

Gruß
Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.01.2017, 23:06 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2017 23:09 von Tommy56.)
Beitrag #13
RE: Einstieg Arduino Mega
(07.01.2017 23:00)Markus0815 schrieb:  Mein kleines Hirn qualmt gerade, da fehlt ja noch der entsprechende Servo und die Ausgabe. Aber ein sehr guter Hinweis, ich danke schonmal.
Nö, erst mal überlegen, welche Daten wir für jeden Servo getrennt brauchen. Noch nicht als Code, erst mal als Text.

Button_vor, Button_zurueck, led_pin, ...

Die Daten für den Motor hast eher Du. Bitte ergänzen.

Gruß Tommy

Edit: Für was ist das Delay(warten); // 19 ms gut?

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2017, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2017 10:35 von Markus0815.)
Beitrag #14
RE: Einstieg Arduino Mega
(07.01.2017 23:06)Tommy56 schrieb:  Nö, erst mal überlegen, welche Daten wir für jeden Servo getrennt brauchen. Noch nicht als Code, erst mal als Text.

Button_vor, Button_zurueck, led_pin, ...

Die Daten für den Motor hast eher Du. Bitte ergänzen.

Gruß Tommy

Edit: Für was ist das Delay(warten); // 19 ms gut?

Hier ist die Liste, was ich wie benutzen möchte.

Die Servos sollen nur zwei feste Positionen anfahren zum testen eben 0 und 90.
Das Delay kann rausfliegen, hatte ich vergessen.

Gruß
Markus


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2017, 13:40
Beitrag #15
RE: Einstieg Arduino Mega
(08.01.2017 10:33)Markus0815 schrieb:  Die Servos sollen nur zwei feste Positionen anfahren zum testen eben 0 und 90.
Ich würde in etwa so anfangen:
Code:
typedef struct servo {
  byte tasterPin1; // für 0 Grad
  byte tasterPin2; // für 90 Grad
  byte ledPin;
  byte pwmPin;
  byte position; // aktuelle Position
  byte ziel; // Zielposition nach Tastendruck
};

const byte anzahl = 12;
servo servos[anzahl] = {{22,23,A0,2,0,0}, {24,25,A1,3,0,0}, {26,27,A2,4,0,0}, {28,29,A3,5,0,0},
                        {30,31,A4,6,0,0}, {32,33,A5,7,0,0}, {34,35,A6,8,0,0}, {36,37,A7,9,0,0},
                        {38,39,A8,10,0,0}, {40,41,A9,11,0,0}, {42,43,A10,12,0,0}, {44,45,A11,13,0,0}};


void setup() {
  Serial.begin(115200);
  Serial.println("Start");
  for(byte i=0; i<anzahl; i++) {
    pinMode(servos[i].tasterPin1,INPUT_PULLUP);  
    pinMode(servos[i].tasterPin2,INPUT_PULLUP);
    pinMode(servos[i].ledPin,OUTPUT);  
    pinMode(servos[i].pwmPin,OUTPUT);  
  }
}

void loop() {
  // Tasten erfassen (bisher keine Entprellung)
  for(byte i=0; i<anzahl; i++) {
    if (!digitalRead(servos[i].tasterPin1)) {
      servos[i].ziel = 0;
      Serial.print(i); Serial.println(F(" Taster 0"));
    }
    if (!digitalRead(servos[i].tasterPin2)) {
      servos[i].ziel = 90;
      Serial.print(i); Serial.println(F(" Taster 90"));
    }
  }
  // Änderungen durchführen
  for(byte i=0; i<anzahl; i++) {
    if (servos[i].position != servos[i].ziel) {
      // LED und Motor steuern
      Serial.print(i); Serial.print(F(" Motor auf "));Serial.println(servos[i].ziel);
    }
  }
}
Dort dann Deine Servosteuerung einbauen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem am Mega mit pin 10 Franz54 8 610 19.01.2020 12:12
Letzter Beitrag: Franz54
  Arduino Mega mit Lan Shield und Googlemail Franzel007 8 746 20.12.2019 17:20
Letzter Beitrag: Franzel007
  Wie die HW-Seriellen des Mega richtig einsetzen? DO3GE 2 433 02.12.2019 14:53
Letzter Beitrag: DO3GE
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 1.380 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
  Arduino Mega mit CAN-Shield Gary 5 678 09.10.2019 23:38
Letzter Beitrag: Bitklopfer
  HC-06 Arduino Mega Übertragungsprobleme fv1895 4 897 15.03.2019 11:35
Letzter Beitrag: fv1895
  Ram Speicher bei Arduino Mega wird knapp unkreativ 22 2.534 02.02.2019 18:40
Letzter Beitrag: unkreativ
  Elegoo Mega 2560 R3 lässt sich nicht programieren Union1925 6 1.686 03.12.2018 21:21
Letzter Beitrag: Tommy56
  Mega 2560 + USB Host Shield + USB-Stick Cospieler 4 1.856 19.09.2018 11:17
Letzter Beitrag: Tommy56
  Serielle Daten Windigipet 2018 Software, Arduino Mega 2560 verarbeiten/melden Christian_Moba-Arduino 11 3.117 15.09.2018 09:43
Letzter Beitrag: MicroBahner

Gehe zu:


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