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
Servo mit 2 poti
16.12.2013, 20:33 (Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2013 20:34 von madison5.)
Beitrag #1
Servo mit 2 poti
hallo,

ich hoffe mir kann hier geholfen werden ;-)
ich muss für einen bekannten eine steuerung für ein servo bauen.
ich hab einen arduino mega und eine DFrobot LCD Keypad Shield.
folgendes sollte realisiert werden:
zu beginn sollte das servo in der endposition stehen.
wenn schalter 1 geschlossen wird soll das servo auf die von poti1 eingestellte position fahren.
wenn schalter 2 geschlossen wird sollte das servo auf die von poti2 eingestellte position fahren.
zusätzlich sollten auf der lcd anzeige jeweils die werte für poti1 und 2 angezeigt werden.
in etwa so: Pot1=0 Pot2=20, sozusagen prozentwerte.
mit dem verkabeln hab ich keine probleme, das problem ist die programmierung.
hat wer eine idee wie ich das realisieren kann?
danke im voraus

Mad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2013, 14:52 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2013 14:53 von burgi650.)
Beitrag #2
RE: Servo mit 2 poti
Hast du so garkeine Erfahrung mit dem Programmieren oder nur wenig?

Auf der Seite hast du doch einen Demo-Code, der dir schon fast alles abnimmt.

http://www.dfrobot.com/wiki/index.php?ti...DFR0009%29

Ok, in deinem Fall kannst 3/4 davon nachher löschen.

Die Auswahl für die Tasten ist da schon drin, das Display wird angesteuert und initalisiert.

Dazu noch aus der IDE das Beispiel fürs Servo, in die entsprechenden Switchcase die Steueranweisungen und dann ins LCD schreiben.

Nicht vergessen, das Servo muss auf einen PWM-port, das Shield belegt die meisten aber schon, also beim Mega2560 auf 44-46 ausweichen.

Uwe

Martin Luther King sagte am 28 August 1963 :

I have a Dream !!

Ich bin weiter:

I have a Schaltplan !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2013, 17:20 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2013 17:27 von madison5.)
Beitrag #3
RE: Servo mit 2 poti
(22.12.2013 14:52)burgi650 schrieb:  Hast du so garkeine Erfahrung mit dem Programmieren oder nur wenig?

Auf der Seite hast du doch einen Demo-Code, der dir schon fast alles abnimmt.

http://www.dfrobot.com/wiki/index.php?ti...DFR0009%29

Ok, in deinem Fall kannst 3/4 davon nachher löschen.

Die Auswahl für die Tasten ist da schon drin, das Display wird angesteuert und initalisiert.

Dazu noch aus der IDE das Beispiel fürs Servo, in die entsprechenden Switchcase die Steueranweisungen und dann ins LCD schreiben.

Nicht vergessen, das Servo muss auf einen PWM-port, das Shield belegt die meisten aber schon, also beim Mega2560 auf 44-46 ausweichen.

Uwe
danke für deine antwort.
etwas ahnung hab ich, aber ist halt sehr beschränkt.
das anschließen und die verkabelung ist kein problem.
werd mir den link von dir ansehen und bei offenen fragen hier wieder schreiben!
ein servo mit einem poti zu steuern funktioniert soweit.
mein problem ist noch das es das erst machen soll wenn schalter 1 aktiv ist.
das ganze soll dann auch noch mit schalter 2 und poti 2 funktionieren.
die ausgabe der potistellung auf das display ist mir auch noch nicht ganz klar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2013, 17:42
Beitrag #4
RE: Servo mit 2 poti
Eine wichtige frage noch..

Soll das Servo die Schalter bedienen oder bedienst du die Schalter und das Servo bewegt sich?

Martin Luther King sagte am 28 August 1963 :

I have a Dream !!

Ich bin weiter:

I have a Schaltplan !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2013, 19:23
Beitrag #5
RE: Servo mit 2 poti
(22.12.2013 17:42)burgi650 schrieb:  Eine wichtige frage noch..

Soll das Servo die Schalter bedienen oder bedienst du die Schalter und das Servo bewegt sich?
die schalter werden von hand, bzw. das signal kommt von einem steuergerät.
aber gehen wir davon aus das es ein normaler kippschalter ist.
wichtig wäre noch das die stellung von poti 1 gespeichert bleibt und das servo bei betätigung des schalter 2 um den weg von poti 2 weiterfährt.
ich hoffe ich habe mich verständlich ausgedrückt ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2013, 22:23
Beitrag #6
RE: Servo mit 2 poti
Du hast dich schon verständlich ausgedrückt, aber wie so manche andere Hilfsanfrage hier kommt das so rüber als wenn du gerne den gesamten Code von mir hättest.

Klar, kann ich dir schreiben, ist keine grosse Sache. Aber... was bringt dir das?

Mach nen Anfang und ich dir bei Problemen.

Sorry, ich habs nicht nur in diesem Forum, auch an anderer Stelle schon mitgemacht, das plötzlich Hobbyprojekte vermarktet wurden.
Nochmal mach ich die Arbeit nicht und andere Verdienen. Weiterhelfen ja, auf den Weg bringen auch, korrigieren auch aber die grössten Teil musst schon selber leisten.

Uwe

Martin Luther King sagte am 28 August 1963 :

I have a Dream !!

Ich bin weiter:

I have a Schaltplan !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2013, 14:00
Beitrag #7
RE: Servo mit 2 poti
danke für deine antwort.
das ist kein projekt das vermarktet wird.
ich bekomme kein geld dafür, ist ein freundschaftlicher dienst für einen guten freund.
würde mich trotzdem freuen wenn du mir weiterhelfen könntest.
was ich bisher habe.

/* Servo-Steuerung
Als-Steuerung
*/


#include <LiquidCrystal.h>
#include <Servo.h>

//lcd (rs, rw, enable, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const int inputPin1 = 14; //Eingang Schalter 1
const int inputPin2 = 15; //Eingang Schalter 2
const int ledPin = 13;
Servo myservo;
int potPin1 = A8;
int potPin2 = A9;
int val;



void setup(){
pinMode(inputPin1, INPUT);
pinMode(inputPin2, INPUT);
pinMode(ledPin, OUTPUT);
// LCD-Setup: Anzahl Zeichen, Anzahl Zeilen
lcd.begin(16, 2);
// Ausgabe Text
// Cursor setzen setCursor(Spalte, Zeile)
// 1. Zeichen, 1 Zeile
lcd.setCursor(5, 0);
lcd.print("Hello");
// 1. Zeichen, 2. Zeile
lcd.setCursor(3, 1);
lcd.print("Welcome");
delay(4000);
lcd.clear();
myservo.attach(20);

}


void loop(){
int val = digitalRead(inputPin1);
if (val == HIGH)
{
digitalWrite(ledPin, HIGH);
val = analogRead(potPin1);
// Skalieren des Sollwertes für den Servo
// 0-1023 entsprechen 0-180 Grad
val = map(val, 0, 1023, 0, 179);
// Sollwert für Servoposition schreiben
myservo.write(val);
delay(15);
}
else
{
digitalWrite(ledPin, LOW);
}
}


die led ist nur zur kontrolle für den schalter.
das problem hier ist noch das das servo beim ausschalten von schalter 1 nicht auf 0 fährt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2013, 08:48
Beitrag #8
RE: Servo mit 2 poti
hab das ganze jetzt auf 3 poti erweitert.
/* Servo-Steuerung
Als-Steuerung
*/


#include <LiquidCrystal.h>
#include <Servo.h>

//lcd (rs, rw, enable, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const int inputPin1 = 14; //Eingang Schalter 1
const int inputPin2 = 15; //Eingang Schalter 2
const int ledPin = 13;
Servo myservo;
int potPin = A8;
int potPin1 = A9;
int potPin2 = A10;
int val;
int val1;
int val2;



void setup(){
pinMode(inputPin1, INPUT); //Schalter 1
pinMode(inputPin2, INPUT); //Schalter 2
pinMode(ledPin, OUTPUT);
// LCD-Setup: Anzahl Zeichen, Anzahl Zeilen
lcd.begin(16, 2);
// Ausgabe Text
// Cursor setzen setCursor(Spalte, Zeile)
// 1. Zeichen, 1 Zeile
lcd.setCursor(5, 0);
lcd.print("Hello");
// 1. Zeichen, 2. Zeile
lcd.setCursor(3, 1);
lcd.print("Welcome");
delay(4000);
lcd.clear();
myservo.attach(20);
myservo.write(0);
}


void loop(){
//Standgas
val = map(analogRead(potPin), 0, 1023, 0, 20); // Skalieren des Sollwertes für den Servo 0-1023 entsprechen 0-180 Grad
// Sollwert für Servoposition schreiben
myservo.write(val);
delay(15);


//Schalter 1

int val1 = digitalRead(inputPin1);
if (val1 == HIGH)
{
digitalWrite(ledPin, HIGH);
val1 = map(analogRead(potPin1), 0, 1023, 0, 99);
// Skalieren des Sollwertes für den Servo
// 0-1023 entsprechen 0-180 Grad
lcd.setCursor(0, 0);
lcd.print("Poti 1:");
lcd.setCursor(8, 0);
lcd.print(val1);
// Sollwert für Servoposition schreiben
myservo.write(val1);
delay(15);

}
else
{
digitalWrite(ledPin, LOW);

}

//Schalter 2

int val2 = digitalRead(inputPin2);
if (val2 == HIGH)
{
digitalWrite(ledPin, HIGH);
val2 = map(analogRead(potPin2), 0, 1023, 0, 99);
// Skalieren des Sollwertes für den Servo
// 0-1023 entsprechen 0-180 Grad
lcd.setCursor(0, 1);
lcd.print("Poti 2:");
lcd.setCursor(8, 1);
lcd.print(val2);
// Sollwert für Servoposition schreiben
myservo.write(val2);
delay(15);

}
else
{
digitalWrite(ledPin, LOW);

}
}

mit dem ersten poti alleine funktioniert das ganz.
nachdem schalter 1 oder 2 aktiv ist stören sich die potis gegenseitig.
hat wer eine idee wie ich das verhindern kann?
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 Gimbal mit Servo Rareer 14 4.684 12.05.2015 14:02
Letzter Beitrag: Bitklopfer
  Servo mit zwei Tasten steuern Lothar 17 17.846 13.02.2015 18:59
Letzter Beitrag: C-Programmierer
  Servo mit dem Arduino ansteuern hans-gander 2 2.761 23.03.2014 15:18
Letzter Beitrag: Bitklopfer
  Servo steuern vom PC coctoroge 11 7.961 04.02.2014 19:49
Letzter Beitrag: Sloompie
  Servo arduino900 10 6.923 19.12.2013 19:26
Letzter Beitrag: arduino900

Gehe zu:


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