Liste der Anhänge anzeigen (Anzahl: 1)
Ah, das ist doch mal akzeptabel... also 3St.davon Skizze habe ich mal schon angefangen:
Lieferung dauert.. melde mich danach
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 33810
Erster Schritt...
Liste der Anhänge anzeigen (Anzahl: 1)
Also soweit ist das Verstanden habe, kann ich die Digital Ports nehmen beim MEGA 2560. Ich habe mal grob aufgeschrieben welche ich dafür nehmen würde (siehe Bild)Anhang 35324.
Die In/Out Ports kann ich ja nehmen oder?
Programm für erstmal ein Motor testen würde so aussehen:
//Variable deklarieren+++++++++++++++++++++++++++++++++++++++ ++++++++++
//IC1.............
//1.Motor
int 1MotorEin=22;
int 1MotorOut1=24;
int 1MotorOut2=26;
//2.Motor
int 2MotorOut3=28;
int 2MotorOut4=30;
int 2MotorEin=32;
//IC2.............
//3.Motor
int 3MotorEin=34;
int 3MotorOut1=36;
int 3MotorOut2=38;
//4.Motor
int 4MotorOut3=40;
int 4MotorOut4=42;
int 4MotorEin=44;
//IC3.............
//5.Motor
int 5MotorEin=46;
int 5MotorOut1=48;
int 5MotorOut2=50;
//Taster
//1.Motor
int Button1MotorRechts=31;
int Button1MotorLinks=33;
//Hardware Ein-/Ausgänge setzen++++++++++++++++++++++++++++++++++++++++++
void setup() {
pinMode(Button1MotorRechts, INPUT); // Port als Eingang schalten für 1 Motor Rechts Test
pinMode(Button1MotorLinks, INPUT); // Port als Eingang schalten für 1 Motor Links Test
pinMode(1MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(1MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(1MotorOut2, OUTPUT); // Port als Ausgang schalten
pinMode(2MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(2MotorOut3, OUTPUT); // Port als Ausgang schalten
pinMode(2MotorOut4, OUTPUT); // Port als Ausgang schalten
pinMode(3MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(3MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(3MotorOut2, OUTPUT); // Port als Ausgang schalten
pinMode(4MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(4MotorOut3, OUTPUT); // Port als Ausgang schalten
pinMode(4MotorOut4, OUTPUT); // Port als Ausgang schalten
pinMode(5MotorEin, OUTPUT); // Port als Ausgang schalten
pinMode(5MotorOut1, OUTPUT); // Port als Ausgang schalten
pinMode(5MotorOut2, OUTPUT); // Port als Ausgang schalten
}
void loop() {
if ((digitalRead(Button1MotorRechts)==HIGH) && (digitalRead(Button1MotorLinks)==LOW)) {
//1 Motor Drehrichtung Rechts
digitalWrite(1MotorEin, HIGH);
digitalWrite(1MotorOut1, HIGH);
digitalWrite(1MotorOut2, LOW);
} else {
//1Motor steht
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, LOW);
}
delay(10); // Kleine Pause
if ((digitalRead(Button1MotorRechts)==LOW) && (digitalRead(Button1MotorLinks)==HIGH)) {
//1Motor Drehrichtung Links
digitalWrite(1MotorEin, HIGH);
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, HIGH);
} else {
//1Motor steht
digitalWrite(1MotorOut1, LOW);
digitalWrite(1MotorOut2, LOW);
}
delay(10); // Kleine Pause
}
Liste der Anhänge anzeigen (Anzahl: 3)
So das Projekt ist fertig geworden... Mein Ziel ist erreicht. Leider konnte ich mit den Mega 2560 die Bluetooth Verbindung nicht aufbauen, aber mit einen Uno hat es geklappt. Der Roboterarm lässt sich jetzt mit den App Bluetooth Serial Controller steuern. Danke an alle die mitgeholfen haben. Jetzt kann ich das nächste Projekt angehen.
- - - Aktualisiert - - -
Anhang 35335Anhang 35336Anhang 35337
Der Code für den Uno:
#include <SoftwareSerial.h>
SoftwareSerial miBT(0, 1); // pin 0 RX, pin 1 TX
char DATO = 0;
int Motor1Out1=2;
int Motor1Out2=3;
int Motor2Out1=4;
int Motor2Out2=5;
int Motor3Out1=6;
int Motor3Out2=7;
int Motor4Out1=8;
int Motor4Out2=9;
int Motor5Out1=10;
int Motor5Out2=11;
int Motor6Out1=12;
int Motor6Out2=13;
void setup(){
miBT.begin(38400); // kommuniktion zwischen Uno und HC-05 auf 38400 eingestellt
pinMode(Motor1Out1, OUTPUT);
pinMode(Motor1Out2, OUTPUT);
pinMode(Motor2Out1, OUTPUT);
pinMode(Motor2Out2, OUTPUT);
pinMode(Motor3Out1, OUTPUT);
pinMode(Motor3Out2, OUTPUT);
pinMode(Motor4Out1, OUTPUT);
pinMode(Motor4Out2, OUTPUT);
pinMode(Motor5Out1, OUTPUT);
pinMode(Motor5Out2, OUTPUT);
pinMode(Motor6Out1, OUTPUT);
pinMode(Motor6Out2, OUTPUT);
}
void loop(){
if (miBT.available()){ // Abfrage ob Daten an HC-05 ankommen
DATO = miBT.read();
if (DATO == 'a')
digitalWrite(Motor1Out1, !digitalRead(Motor1Out1));
if (DATO == 'b')
digitalWrite(Motor1Out2, !digitalRead(Motor1Out2));
if (DATO == 'c')
digitalWrite(Motor2Out1, !digitalRead(Motor2Out1));
if (DATO == 'd')
digitalWrite(Motor2Out2, !digitalRead(Motor2Out2));
if (DATO == 'e')
digitalWrite(Motor3Out1, !digitalRead(Motor3Out1));
if (DATO == 'f')
digitalWrite(Motor3Out2, !digitalRead(Motor3Out2));
if (DATO == 'g')
digitalWrite(Motor4Out1, !digitalRead(Motor4Out1));
if (DATO == 'h')
digitalWrite(Motor4Out2, !digitalRead(Motor4Out2));
if (DATO == 'i')
digitalWrite(Motor5Out1, !digitalRead(Motor5Out1));
if (DATO == 'j')
digitalWrite(Motor5Out2, !digitalRead(Motor5Out2));
if (DATO == 'k')
digitalWrite(Motor6Out1, !digitalRead(Motor6Out1));
if (DATO == 'l')
digitalWrite(Motor6Out2, !digitalRead(Motor6Out2));
}
}