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
Tiefenregelung Bohrmaschine + Anzeige
02.03.2015, 10:38 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2015 20:15 von boerg.)
Beitrag #1
Tiefenregelung Bohrmaschine + Anzeige
Tiefenregelung Bohrmaschine mit Tiefenanzeige in mm auf einem LCD Display
Hallo Zusammen,
ich besitze seit kurzen ein Arduino(Klon) nach etwas ausprobieren wollte ich hier mein erstes Projekt vorstellen. Bisher nutze ich nur Bauteile aus einem Starterset. Da jedoch der Servo zu schwach für das folgende Projekt war habe ich einen Größeren bestellt. In der Zeit bis er da ist habe ich schon mal die wichtigsten Funktion programmiert und getestet. Ich freue mich über eure Meinung Verbesserungsvorschläge und Kritik. Fotos und Schaltpläne werde ich noch hochladen wenn der Servo verbaut ist und alles soweit läuft.
Die Idee:
- Eine Tiefenregelung einer (Mikro-)Bohrmaschine über einen Potentiometer
- Ansteurung der Tiefe über einen Servo
- http://www.proxxon.com/de/micromot/28600.php?list ->Servo direkt an die Welle flanschen, an der der Handhebel sitzt
- Anzeige der Absoluten Tiefe
- Anzeige der Tiefe von einem mit Taster wählbaren Nullpunkt
- Einmalige Kalibrierung der Anzeige im Quelltext
Hardwarekomponenten:
- Ardunio(Klon)
- Potentiometer
- Taster
- LCD Modul "1602"
- Servo
- Breadboard, Kabel, etc
Die Umsetzung:
Code:
#include <LiquidCrystal.h>
#include <Servo.h>

Servo myservo;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float const poti    =0,            //Analog Eingang Poti float, damit ich auch kommazahlen verwenden kann
          taster  =7 ,             //Taster Eingang
          faktor  =0.1,            //Faktor um von Grad auf mm zu kommen  
          offset  =0;              //Ofsset um Nullpunkt einzustellen

float     wert,                    //Stellwert des Servo
          anzeige,                 //absoluter Wert der im Display angezeigt wird
          down,                    //Wert um zweit Zeile zu 0 zu setzen
          tasterstatus=0;

void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
myservo.attach(10);
pinMode(taster, INPUT);
}
void loop() {
wert=analogRead(poti);               //Auslesen Poti
tasterstatus=digitalRead(taster);    //Auslesen Taster
wert= map(wert, 0, 1023, 0, 180);    // Wert skalieren von 0-1023 auf 0-180 grad
myservo.write(wert+10);              //verstellen des Sevos(+10, da mein Servo versucht über den Anschlag zu fahren)

anzeige=wert*faktor+offset;          //Umrechnung in mm
lcd.setCursor(0, 0);                  
lcd.print("Absolut");                
lcd.setCursor(8,0);  
lcd.print(anzeige);                  //schreiben des Absoluten Wert
lcd.setCursor(14,0);  
lcd.print("mm");
if (tasterstatus == HIGH){           //Abfrage ob Taster gedrückt
  down =anzeige;                     //anzeige Wert in hilfsvariabel speichern
  }
lcd.setCursor(0,1);
lcd.print("Tiefe");
lcd.setCursor(8,1);
lcd.print(anzeige-down);             //Zeigt die Tiefenänderung in mm zu der höhe, wo der Servo stand als der Taster gedrückt wurde
lcd.setCursor(14,1);  
lcd.print("mm");
delay(15);
lcd.setCursor(8,0);                  //löschen der Felder, damit keine "reste" stehen bleiben
lcd.print("        ");               //beispielsweise beim Sprung von 100 auf 99 bleibt sonst ein 199 stehen
lcd.setCursor(8,1);
lcd.print("        ");

}
Ideen für Erweiterungen:
-Anfahren des gespeicherten Nullpunktes
-> Problem:Das Poti hat ja nur einen bestimmten Drehwinkel und dann wird es
schwierig noch den Kompletten weg zu steuern.
Edit:
Da mein Servo noch nicht da ist, hatte ich schon Zeit den Schaltplan zu machen:
[Bild: 21162932ep.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.03.2015, 11:02
Beitrag #2
RE: Tiefenregelung Bohrmaschine + Anzeige
(02.03.2015 10:38)boerg schrieb:  Tiefenregelung Bohrmaschine mit Tiefenanzeige in mm auf einem LCD Display
Hallo Zusammen,
ich besitze seit kurzen ein Arduino(Klon) nach etwas ausprobieren wollte ich hier mein erstes Projekt vorstellen. Bisher nutze ich nur Bauteile aus einem Starterset. Da jedoch der Servo zu schwach für das folgende Projekt war habe ich einen Größeren bestellt. In der Zeit bis er da ist habe ich schon mal die wichtigsten Funktion programmiert und getestet. Ich freue mich über eure Meinung Verbesserungsvorschläge und Kritik. Fotos und Schaltpläne werde ich noch hochladen wenn der Servo verbaut ist und alles soweit läuft.
Die Idee:
- Eine Tiefenregelung einer (Mikro-)Bohrmaschine über einen Potentiometer
- Ansteurung der Tiefe über einen Servo
- http://www.proxxon.com/de/micromot/28600.php?list ->Servo direkt an die Welle flanschen, an der der Handhebel sitzt
- Anzeige der Absoluten Tiefe
- Anzeige der Tiefe von einem mit Taster wählbaren Nullpunkt
- Einmalige Kalibrierung der Anzeige im Quelltext
Hardwarekomponenten:
- Ardunio(Klon)
- Potentiometer
- Taster
- LCD Modul "1602"
- Servo
- Breadboard, Kabel, etc
Die Umsetzung:
Code:
#include <LiquidCrystal.h>
#include <Servo.h>

Servo myservo;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float const poti    =0,            //Analog Eingang Poti float, damit ich auch kommazahlen verwenden kann
          taster  =7 ,             //Taster Eingang
          faktor  =0.1,            //Faktor um von Grad auf mm zu kommen  
          offset  =0;              //Ofsset um Nullpunkt einzustellen

float     wert,                    //Stellwert des Servo
          anzeige,                 //absoluter Wert der im Display angezeigt wird
          down,                    //Wert um zweit Zeile zu 0 zu setzen
          tasterstatus=0;

void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
myservo.attach(10);
pinMode(taster, INPUT);
}
void loop() {
wert=analogRead(poti);               //Auslesen Poti
tasterstatus=digitalRead(taster);    //Auslesen Taster
wert= map(wert, 0, 1023, 0, 180);    // Wert skalieren von 0-1023 auf 0-180 grad
myservo.write(wert+10);              //verstellen des Sevos(+10, da mein Servo versucht über den Anschlag zu fahren)

anzeige=wert*faktor+offset;          //Umrechnung in mm
lcd.setCursor(0, 0);                  
lcd.print("Absolut");                
lcd.setCursor(8,0);  
lcd.print(anzeige);                  //schreiben des Absoluten Wert
lcd.setCursor(14,0);  
lcd.print("mm");
if (tasterstatus == HIGH){           //Abfrage ob Taster gedrückt
  down =anzeige;                     //anzeige Wert in hilfsvariabel speichern
  }
lcd.setCursor(0,1);
lcd.print("Tiefe");
lcd.setCursor(8,1);
lcd.print(anzeige-down);             //Zeigt die Tiefenänderung in mm zu der höhe, wo der Servo stand als der Taster gedrückt wurde
lcd.setCursor(14,1);  
lcd.print("mm");
delay(15);
lcd.setCursor(8,0);                  //löschen der Felder, damit keine "reste" stehen bleiben
lcd.print("        ");               //beispielsweise beim Sprung von 100 auf 99 bleibt sonst ein 199 stehen
lcd.setCursor(8,1);
lcd.print("        ");

}

Ideen für Erweiterungen:
-Anfahren des gespeicherten Nullpunktes
-> Problem:Das Poti hat ja nur einen bestimmten Drehwinkel und dann wird es
schwierig noch den Kompletten weg zu steuern.

Hallo und herzlich willkommen,

es gibt auch Potis mit 10 Umdrehungen die heißen dann Mehrgangpotentiometer.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LCD Anzeige für Arduino Mega2560 an Arduino Due? DaniDD 1 818 03.06.2015 12:16
Letzter Beitrag: DaniDD
  GLCD verschobene Anzeige Cubiator 3 657 02.06.2015 05:35
Letzter Beitrag: Bitklopfer
  Common Cathode Rot/Grün Anzeige JoHannes 3 541 14.01.2015 12:27
Letzter Beitrag: StephanBuerger

Gehe zu:


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