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
Weichensteuerung mit Servo
01.01.2016, 13:59
Beitrag #9
RE: Weichensteuerung mit Servo
(01.01.2016 13:20)RCudino schrieb:  
(01.01.2016 12:44)hotsystems schrieb:  
(01.01.2016 12:31)Markus0815 schrieb:  ich habe ein ähnliches Programm für meinen Arduino gebastelt. Zusätzlich wollte ich jedoch über eine LED den jeweiligen Zustand angezeigt bekommen. Dazu wollte ich die jeweiligen Tastereingänge nutzen. Also Taster gedrückt, LED soll leuchten bis anderer Taster betätigt.

Leider drehe ich mich dort im Kreis, denn wenn ich die Eingänge auf LOW lege wird dies ja auch las Tasterdruck gewertet. Hat da jemand eine Idee?
Hast du dir schon mal die Basics angesehen, da ist alles genau beschrieben.
Um funktionierende Programme für den Arduino zu schreiben, sollten die Grundlagen schon vorhanden sein.

Hallo, ich habe gerade diese Problem in meinem Programm gelöst . Programm sieht wie folgt aus.
es wird jetz mit 2 LEDs in meinem Gleisbildstellwerk die Stellung des Servo angezeigt, ob die Weiche in gerader oder abgebogener Position steht. Probiers mal aus.


//31.12.2015
// Stellungsanzeige über LED eingebunden

#include <Servo.h>

// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.


#include <Servo.h>

Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created

int pos = 0; // variable to store the servo position
int sw1 = 4;
int sw2 = 5;
int sw1status =0;
int sw2status =0;
int gerade = 10; // LED Postionsanzeige
int gebogen = 12; // LED Positionsanzeige

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(sw1,INPUT_PULLUP);
pinMode(sw2,INPUT_PULLUP);
myservo.write(pos);
pinMode (gerade,OUTPUT);
pinMode (gebogen,OUTPUT);
}


void loop()
{
sw1status = digitalRead(sw1);
sw2status = digitalRead(sw2);
if (sw1status == LOW){
delay(500);
// digitalWrite(gerade,HIGH);
for(pos = 0; pos < 60; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(50); // waits 15ms for the servo to reach the position
digitalWrite( gebogen,LOW);
delay(50);
digitalWrite(gerade,HIGH);
}
}
if (sw2status == LOW){
// digitalWrite(gebogen,HIGH);
delay(500);
for(pos = 60; pos>=10; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(50); // waits 15ms for the servo to reach the position
digitalWrite(gerade,LOW);
delay(50);
digitalWrite(gebogen,HIGH);
}
}
}

Ich wollte mir halt die zusätzlichen Ein/Ausgänge ersparen und meine Idee war, da der Taster auf HIGH liegt die LED gegen Masse anzuschließen. Somit leuchtet sie ja. Wenn nun aber die andere Taste betätigt wird soll dieser auf LOW gehen, sprich die LED aus und die andere von HIGH gegen Masse geschaltet. Ich mal mal ein Bild.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2016, 14:35 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2016 14:38 von RCudino.)
Beitrag #10
RE: Weichensteuerung mit Servo
(01.01.2016 13:59)Markus0815 schrieb:  
(01.01.2016 13:20)RCudino schrieb:  
(01.01.2016 12:44)hotsystems schrieb:  
(01.01.2016 12:31)Markus0815 schrieb:  ich habe ein ähnliches Programm für meinen Arduino gebastelt. Zusätzlich wollte ich jedoch über eine LED den jeweiligen Zustand angezeigt bekommen. Dazu wollte ich die jeweiligen Tastereingänge nutzen. Also Taster gedrückt, LED soll leuchten bis anderer Taster betätigt.

Leider drehe ich mich dort im Kreis, denn wenn ich die Eingänge auf LOW lege wird dies ja auch las Tasterdruck gewertet. Hat da jemand eine Idee?
Hast du dir schon mal die Basics angesehen, da ist alles genau beschrieben.
Um funktionierende Programme für den Arduino zu schreiben, sollten die Grundlagen schon vorhanden sein.

Hallo, ich habe gerade diese Problem in meinem Programm gelöst . Programm sieht wie folgt aus.
es wird jetz mit 2 LEDs in meinem Gleisbildstellwerk die Stellung des Servo angezeigt, ob die Weiche in gerader oder abgebogener Position steht. Probiers mal aus.


//31.12.2015
// Stellungsanzeige über LED eingebunden

#include <Servo.h>

// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.


#include <Servo.h>

Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created

int pos = 0; // variable to store the servo position
int sw1 = 4;
int sw2 = 5;
int sw1status =0;
int sw2status =0;
int gerade = 10; // LED Postionsanzeige
int gebogen = 12; // LED Positionsanzeige

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(sw1,INPUT_PULLUP);
pinMode(sw2,INPUT_PULLUP);
myservo.write(pos);
pinMode (gerade,OUTPUT);
pinMode (gebogen,OUTPUT);
}


void loop()
{
sw1status = digitalRead(sw1);
sw2status = digitalRead(sw2);
if (sw1status == LOW){
delay(500);
// digitalWrite(gerade,HIGH);
for(pos = 0; pos < 60; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(50); // waits 15ms for the servo to reach the position
digitalWrite( gebogen,LOW);
delay(50);
digitalWrite(gerade,HIGH);
}
}
if (sw2status == LOW){
// digitalWrite(gebogen,HIGH);
delay(500);
for(pos = 60; pos>=10; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(50); // waits 15ms for the servo to reach the position
digitalWrite(gerade,LOW);
delay(50);
digitalWrite(gebogen,HIGH);
}
}
}

Ich wollte mir halt die zusätzlichen Ein/Ausgänge ersparen und meine Idee war, da der Taster auf HIGH liegt die LED gegen Masse anzuschließen. Somit leuchtet sie ja. Wenn nun aber die andere Taste betätigt wird soll dieser auf LOW gehen, sprich die LED aus und die andere von HIGH gegen Masse geschaltet. Ich mal mal ein Bild.

Auch ich hatte das Problem, dass beim Positionswechsel die LED an bleibt. Habe daher beim Positionswechsel die andere LED ausgeschaltet. ( Siehe Programm)

Mit freundlichen Grüßen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2016, 16:39
Beitrag #11
RE: Weichensteuerung mit Servo
Auch ich hatte das Problem, dass beim Positionswechsel die LED an bleibt. Habe daher beim Positionswechsel die andere LED ausgeschaltet. ( Siehe Programm)
[/quote]

Das verstehe ich ja auch soweit, jedoch wollte ich gern die Eingänge welche für die Taster benutzt werden quasi als Ausgang für die LED mitnutzen. Derzeit sieht mein Sketch so aus:

#include <Servo.h>

Servo myservo;

int taster1 = 3;
int taster2 = 4;
int Servo1 = 9;

int Stellung1 = 45;
int Stellung2 = 1;
int Ruhestellung;
const int Warten = 19;
void Servo_move(int servo,int Stellung_Neu);
//-------------------------------------------------------------
void setup()
{
pinMode(taster1, INPUT);
pinMode(taster2, INPUT);
digitalWrite(taster1,HIGH);
digitalWrite(taster2,HIGH);
pinMode(Servo1,OUTPUT);

Ruhestellung=Stellung1;
}
//-------------------------------------------------------------
void loop()
{
if (digitalRead(taster1) == LOW)
Servo_move(Servo1, Stellung1);
if (digitalRead(taster2) == LOW)
Servo_move(Servo1, Stellung2);
delay(20);
}
//-------------------------------------------------------------
/*** Timingverhalten!!! ***/
void Servo_move(int servo,int Stellung_neu){
int Schritt;
if (Stellung_neu == Ruhestellung) return;
Schritt = (Stellung_neu > Ruhestellung) ? 1 : -1;
while(Ruhestellung != Stellung_neu){
Ruhestellung+=Schritt;
// Servo stellen
digitalWrite(servo,HIGH);
delayMicroseconds((Ruhestellung * 10)+500);
digitalWrite(servo,LOW);
delay(Warten);
}
}

So wollte ich nun die LED an den Ports betreiben:
http://prntscr.com/9kwsk7

Setze ich allerdings den entsprechenden Port auf LOW, wird dies direkt als Tastendruck interpretiert. Is ja auch richtig.

Nun frage ich mich halt ob ich da grundsätzlich einen Denkfehler mache und dies so nicht machbar ist, dann muß ich wirklich zwei weitere Ports nur für die LED benutzen.

Besten Dank im Voraus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2016, 17:08
Beitrag #12
RE: Weichensteuerung mit Servo
(01.01.2016 16:46)Lötzinnerhitzer schrieb:  
Zitat:Nun frage ich mich halt ob ich da grundsätzlich einen Denkfehler mache und dies so nicht machbar ist

JA
(Grundlagen elektronische Schaltungen und Arduino-Port-Definitionen beachten)

Besten Dank für die Antwort. Vergeßt bitte meine Frage.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2016, 17:40
Beitrag #13
RE: Weichensteuerung mit Servo
(01.01.2016 17:13)Lötzinnerhitzer schrieb:  Edit: PN unbeantwortet gelöscht

Genau das meinte ich mit meiner PN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2016, 02:00
Beitrag #14
RE: Weichensteuerung mit Servo
(01.01.2016 17:13)Lötzinnerhitzer schrieb:  gibst Du immer so schnell auf und spielst die "beleidigte Leberwurst" ?

Ich persönlich habe keine Lust, hier im Arduino-Forum regelmäßig die Grundsatzfragen zu Elektronik erklären zu müssen.
Google wirft genügend aus, vorausgesetzt man entwickelt ein wenig Eigeninititaive und ist bereit zu suchen und zu lernen.
Angry

Edit: PN unbeantwortet gelöscht

Und wie ich schon per PN schrieb, ich gebe nicht auf Big Grin Habe nun fast das was ich wollte. Mit einer kleinen Einschränkung bislang, aber damit kann ich leben. 5 Servos laufen nun so wie geplant und die LED schalten wie gewollt.

Besten Dank Dir nochmal. Nun muß ich es nur noch auf den Due erweitern.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2016, 02:12 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2016 02:14 von Markus0815.)
Beitrag #15
RE: Weichensteuerung mit Servo
(02.01.2016 02:08)Lötzinnerhitzer schrieb:  viel Erfolg

Auch ein Kommunikationselektroniker macht im Neujahrssuff mal Fehler vor allem vom Tablet aus, aber es geht ja nun Wink Und freundlich wie ich bin verweise ich gern weiter auf Dr. Google. Das hilft vor allem Neulingen enorm.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2016, 15:41
Beitrag #16
RE: Weichensteuerung mit Servo
Wie hast du es jetzt hardwaremäßig gelöst?

Mit freundlichen Grüßen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Star ATtiny Servo SOS SOS hansanne1310 16 270 Gestern 15:46
Letzter Beitrag: hansanne1310
  Servo über Temperatur steuern querkopf71 3 84 07.12.2016 19:21
Letzter Beitrag: hotsystems
  ATtiny und Servo Bibliothek malsehen 9 315 15.10.2016 18:09
Letzter Beitrag: malsehen
  Servo soll nur in Ruhelage stoppen Sven1996 1 243 19.08.2016 14:37
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 766 16.07.2016 11:43
Letzter Beitrag: Binatone
  Servo und PWM Ausgabe F2Ingo 4 497 17.06.2016 14:53
Letzter Beitrag: F2Ingo
  Hilfe bei Servo-steuerung Innocence 7 825 23.02.2016 11:00
Letzter Beitrag: hotsystems
  Servo.h lässt sich nicht einbinden ^^ EvilBen 5 707 08.02.2016 18:07
Letzter Beitrag: hotsystems
  Servo per Serieller Mointor ansteuern iggy 1 821 03.08.2015 03:08
Letzter Beitrag: yasi
  Servo.h und Digitalservos fs82 29 6.031 11.06.2015 18:59
Letzter Beitrag: fs82

Gehe zu:


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