Arduino/kraan project

Toon hier Uw afgeronde projecten aan anderen.
Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Arduino/kraan project

Berichtdoor Piet » 17 Jan 2018, 21:00

Ik ben nieuw op dit forum maar wil even mijn project laten zien.
Het betreft een model van een kraan die aangestuurd word door een arduino mega 2560 met twee L298N H bridge een HC 05 en de arduino BT app.
Google maar even op arduino kraan project.
De sketch(die met hulp is gemaakt) kan ik je eventueel toe sturen.

Nu ben ik met een nieuw project begonnen: Waarbij 5 dc motoren van waarvan 4 van 12 volt en 1 van 5 volt aangestuurd moet worden zonder bluetooth .
Inmiddels heb ik in het bezit een mega 2560 en een aantal L298N H bridge

// Motor A rechts om draaien 0,5 seconde. (knijper dicht )
Motor B rechts om draaien 1 seconde ( grote giek omhoog)
Motor C rechts om draaien 1,5 seconde (zwenk rechts)
Motor D rechts om draaien 0,5 seconde (kleine giek omhoog)
Motor E rechts om draaien 0,5 seconden ( 5 v motor)
Motor A links om draaien 0,5 seconde (knijper open)
Motor C links om draaien 1,5 seconden (zwenk links)
Motor D links om draaien 0,5 seconden ( kleine giek omlaag )
Motor B links om draaien 1 seconde (grote giek omlaag)
Motor E moet na 5 stappen naar rechts 1 stap van 2,5 seconden naar links.
Misschien is het een onmogelijke zaak maar zal iemand hier een sketch voor hebben of kunnen maken.
Ik wacht het antwoord af.

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Arduino/kraan project

Berichtdoor shooter » 18 Jan 2018, 21:55

Allereerst je grote kraan:
Ik zou je programma graag willen zien , en denk eens na over snelheidsregeling, (met PWM)

je grijperkraan kan ook wel, (zelf doen is ook goed te doen zeker met mblock.
Maar het resultaat zal niet echt prima werken omdat er verschil in snelheden zal zijn.
die L298 bruggen werken overigens niet best op 5 Volt motorspanning dus simpeler is dan 12 Volt en dan de PWM klein zetten(of de stroombegrenzing gebruiken), dan werkt het perfect.
paul deelen
shooter@home.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Arduino/kraan project

Berichtdoor Piet » 18 Jan 2018, 23:40

Hallo,

hierbij de sketch:

int vorige = 0;
void setup ()

{
pinMode (9, OUTPUT); // Deze pin zal de HC-05 pen 34 (key pin) trekken HIGH om module te schakelen naar AT-modus
pinMode (13, OUTPUT);
pinMode (3, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (2, OUTPUT);
pinMode (8, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
digitalWrite (9, HIGH);
Serial.begin (9600);
Serial.println ( "Enter AT commando's:");
Serial1.begin (38400); // HC-05 standaard snelheid in de AT-commando meer
delayGrab();
Serial1.println ("AT+ORGL");
delayGrab();
Serial1.println ("AT+RESET");
delayGrab();
Serial1.println ("AT+ROLE=0");
delayGrab();
Serial1.println ("AT+POLAR=1,0");
delayGrab();
Serial1.println ("AT+RESET");
delayGrab();
delay(3000);
Serial1.println ("AT+NAME=RIJWERK");
delayGrab();
Serial1.println ("AT+INIT");
Serial.println ("AT+INIT");
delayGrab();
Serial1.println ("AT+INQ");/**/
Serial.println ("AT+INQ");
delayGrab();

digitalWrite(13, 1);
}

void delayGrab(){
while (Serial1.available ()) {
Serial.write (Serial1.read ());
}
delay(700);
}

void loop() {
delay(100);

String reading = "";
// put your main code here, to run repeatedly:
while (Serial1.available ()) {
char inchar = Serial1.read();
reading = reading + inchar;
}

if(reading != ""){
Serial.println(reading);
uit();
if(reading == "#b=1#"){
digitalWrite(3, 1);
vorige = 1;
}else if(reading == "#b=17#" || reading == "#b=71#"){
digitalWrite(3, 1);
digitalWrite (2, 1);
vorige = 2;
}else if(reading == "#b=19#" || reading == "#b=91#"){
digitalWrite(3, 1);
digitalWrite (8, 1);
vorige = 3;
}else if(reading == "#b=1A#" || reading == "#b=A1#"){
digitalWrite(3, 1);
digitalWrite (10, 1);
vorige = 4;
}else if(reading == "#b=18#" || reading == "#b=81#"){
digitalWrite(3, 1);
digitalWrite (11, 1);
vorige = 5;
}
else if(reading == "#b=2#"){
digitalWrite(5, 1);
vorige = 6;
}else if(reading == "#b=27#" || reading == "#b=72#"){
digitalWrite(5, 1);
digitalWrite (2, 1);
vorige = 7;
}else if(reading == "#b=29#" || reading == "#b=92#"){
digitalWrite(5, 1);
digitalWrite (8, 1);
vorige = 8;
}else if(reading == "#b=2A#" || reading == "#b=A2#"){
digitalWrite(5, 1);
digitalWrite (10, 1);
vorige = 9;
}else if(reading == "#b=28#" || reading == "#b=82#"){
digitalWrite(5, 1);
digitalWrite (11, 1);
vorige = 10;
}
else if(reading == "#b=3#"){
digitalWrite (6, 1);
vorige = 11;
}else if(reading == "#b=37#" || reading == "#b=73#"){
digitalWrite (6, 1);
digitalWrite (2, 1);
vorige = 12;
}else if(reading == "#b=39#" || reading == "#b=93#"){
digitalWrite (6, 1);
digitalWrite (8, 1);
vorige = 13;
}else if(reading == "#b=3A#" || reading == "#b=A3#"){
digitalWrite (6, 1);
digitalWrite (10, 1);
vorige = 14;
}else if(reading == "#b=38#" || reading == "#b=83#"){
digitalWrite (6, 1);
digitalWrite (11, 1);
vorige = 15;
}
else if(reading == "#b=4#"){
digitalWrite (7, 1);
vorige = 16;
}else if(reading == "#b=47#" || reading == "#b=74#"){
digitalWrite (7, 1);
digitalWrite (2, 1);
vorige = 17;
}else if(reading == "#b=49#" || reading == "#b=94#"){
digitalWrite (7, 1);
digitalWrite (8, 1);
vorige = 18;
}else if(reading == "#b=4A#" || reading == "#b=A4#"){
digitalWrite (7, 1);
digitalWrite (10, 1);
vorige = 19;
}else if(reading == "#b=48#" || reading == "#b=84#"){
digitalWrite (7, 1);
digitalWrite (11, 1);
vorige = 20;
}
else if(reading == "#b=7#"){
digitalWrite (2, 1);
vorige = 21;
}else if(reading == "#b=9#"){
digitalWrite (8, 1);
vorige = 22;
}else if(reading == "#b=A#"){
digitalWrite (10, 1);
vorige = 23;
}else if(reading == "#b=8#"){
digitalWrite (11, 1);
vorige = 24;
}

else {

digitalWrite (3, 0);
digitalWrite (5, 0);
digitalWrite (6, 0);
digitalWrite (7, 0);
digitalWrite (2, 0);
digitalWrite (8, 0);
digitalWrite (10, 0);
digitalWrite (11, 0);
}
}
// Houd het lezen van Arduino Serial Monitor en te versturen naar HC-05
while (Serial.available ()) {
Serial1.write (Serial.read ());
}

}

void uit() {
digitalWrite (3, 0);
digitalWrite (5, 0);
digitalWrite (6, 0);
digitalWrite (7, 0);
digitalWrite (2, 0);
digitalWrite (8, 0);
digitalWrite (10, 0);
digitalWrite (11, 0);
}

Ik hoop dat je er wat hebt.
Zelf heb ik er weinig verstand van want bij deze sketch heb ik ook hulp gehad.
Alvast bedankt

Groeten Piet.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Arduino/kraan project

Berichtdoor shooter » 19 Jan 2018, 21:42

zet er aub commentaar bij wat er allemaal aangestuurd word,
verder zag ik onder de else dat hier hetzelfde staat als in de functie uit, dus dat is mooi oefening.
paul deelen
shooter@home.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Arduino/kraan project

Berichtdoor Piet » 04 Feb 2018, 14:35

Wegens drukte heeft het even geduurd.
De sketch werkt prima, omdat iemand anders hem heeft gemaakt heeft heb ik er geen commentaar bij.
De volgende sketch zal ik wel graag wat uitleg van krijgen:
cpp code
// verbind de pinnen van de motorcontroller met de Arduino digitale pinnen          
// motor één
int enA = 10;
int in1 = 9;
int in2 = 8;
// motor twee
int enB = 5;
int in3 = 7;
int in4 = 6;
// motor drie
int enC= 11;
int in5 = 12;
int in6 = 13;
// Motor vier
int enD= 2;
int in7 = 3;
int in8 = 4;

void setup ()
{
// zet alle motorregelpennen op uitgangen
pinMode (enA, OUTPUT);
pinMode (enB, OUTPUT);
pinMode (enC, OUTPUT);
pinMode (enD,OUTPUT);
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
pinMode (in3, OUTPUT);
pinMode (in4, OUTPUT);
pinMode (in5, OUTPUT);
pinMode (in6, OUTPUT);
pinMode (in7, OUTPUT);
pinMode (in8, OUTPUT);
}
Void loop () {
// deze functie zal de motoren met een vaste snelheid in beide richtingen laten draaien
// zet motor A aan .knijper.
digitalWrite (in1, HIGH);
digitalWrite (in2, LOW);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enA, 200);
delay (2000); // 2 sec knijper dicht
// zet motor B aan . hoofd giek
digitalWrite (in3, HIGH);
digitalWrite (in4, LOW);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enB, 200);
delay (3000); // 3 sec giek hoog.
// zet motor C aan . zwenk rechts.
digitalWrite (in5, HIGH);
digitalWrite (in6, LOW);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enA, 200);
delay (3000); // 3 sec zwenk stopt.
// zet motor D aan . korte giek.
digitalWrite (in7, HIGH);
digitalWrite (in8, LOW);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enB, 200);
delay (3000); // 3 sec korte giek hoog.
// verander nu de motorrichtingen
digitalWrite (in1, LOW);
digitalWrite (in2, HIGH);
digitalWrite (in3, LOW);
digitalWrite (in4, HIGH);
digitalWrite (in5, LOW);
digitalWrite (in6, HIGH);
digitalWrite (in7, LOW);
digitalWrite (in8, HIGH);
delay (2000);
// zet nu motoren uit
digitalWrite (in1, LOW);
digitalWrite (in2, LOW);
digitalWrite (in3, LOW);
digitalWrite (in4, LOW);
digitalWrite (in5, LOW);
digitalWrite (in6, LOW);
digitalWrite (in7, LOW);
digitalWrite (in8, LOW);

}
void setup ()
{
// zet motor A aan knijper.
digitalWrite (in1, LOW);
digitalWrite (in2, HIGH);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enA, 200);
delay (2000); // 2 sec knijper open.
// zet motor C aan . zwenk links
digitalWrite (in5, LOW);
digitalWrite (in6, HIGH);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enA, 200);
delay (3000); // 3 sec zwenk stopt.
// zet motor D aan . korte giek.
digitalWrite (in7, LOW);
digitalWrite (in8, HIGH);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enB, 200);
delay (3000); // 3 sec korte giek laag.
// zet motor B aan . hoofd giek
digitalWrite (in3, LOW);
digitalWrite (in4, HIGH);
// stel de snelheid in op 200 van het mogelijke bereik 0 ~ 255
analogWrite (enB, 200);
delay (3000); // 3 sec hoofd giek laag.
}


Deze sketch heb ik van internet gehaald maar er zitten heel wat foutmeldingen in.
Graag wat hulp aub.

Vr gr Piet

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Arduino/kraan project

Berichtdoor nicoverduin » 04 Feb 2018, 14:40

De eerste die ik al zie is dat je 2x setup() als functie hebt. En daar komt hij niet uit.
Vwb. de kwaliteit van de sketch...... bagger :)
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Arduino/kraan project

Berichtdoor Piet » 04 Feb 2018, 14:44

Daarom vraag ik ook om hulp.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Arduino/kraan project

Berichtdoor shooter » 05 Feb 2018, 00:28

vervang de onderste setup van naam maak er bijvoorbeeld start van
zet die functie start dan in de eerste setup onderaan, dan doet hij eerst de pinnen goed zetten, en daarna een paar waardes zetten.

gebruik goede namen voor variabelen, nu is het moeilijk om uit te zoeken waar het misgaat.
dus ipv in1 word motorAop en in2 motorAneer
voorzie elke regel van commentaar, zet er een paar serial.prints in dan kun je op de monitor zien wat er gebeurt.
en stapje voor stapje kom je ook vooruit.
paul deelen
shooter@home.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Arduino/kraan project

Berichtdoor Piet » 04 Mrt 2018, 20:13

Het heeft een tijdje geduurd (weinig tijd) maar ik ben er uit.
Door een paar kleine aanpassingen is het gelukt.
Jammer van dit forum dat er door een persoon vaak negatief (bagger) gereageerd word.
Dat zie ik vaak in reacties van hem op dit forum.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Arduino/kraan project

Berichtdoor nicoverduin » 04 Mrt 2018, 22:16

Je mag me gerust bij naam noemen hoor. En die sketch is nog steeds bagger.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar Afgeronde projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten