Ehh, onmiddelijk nadat de microswitch de steppermotor heeft doen stoppen Erik
Mvg,
kees
Ehh, onmiddelijk nadat de microswitch de steppermotor heeft doen stoppen Erik
Mvg,
kees
UPDATE UPDATE UPDATE!!
laatst vermeldde schema net bedraad en geüpload en het werkt!
knop 1 laat stepper motor 2048 stappen rechtsom lopen en
knop 2 laat steppermotor 48 stappen linksom lopen (aantal stappen door mij aangepast om verschil te zien)
een en ander houdt in dat ik de code voor zowel de knoppen als voor de steppermotor werkend heb kunnen combineren in één complete code! Ons bent blij! want weer een "step" verder jaja
nou die pauze nog ...
en die microswitch nog even in de projector frommelen, (ik denk dat ik toch maar zo'n Velleman reed dingetje koop: https://www.okaphone.com/artikel.asp?id=484585 die is net wat makkelijker te positioneren
Mvg,
kees
P.S.
uh-oh
knop 2 (1024 stappen counterclockwise) werkt niet zolang knop 1 niet klaar is m.a.w. knop 2 beinvloed knop 1 NIET door bijv. meteen de andere kant op te draaien
hoe laat ik de steppermotor sowieso lopen (met of zonder knop 1, dat geeft verder niet) en knop 2 de steppermotor meteen laten stoppen met een pauze er achteraan? en de loop dan weer van voren af aan?
Vertelll!!! jullie kunnen het!!!
Dat zou dus zijn ná deze regels?
if (toestandknop1 == HIGH) {
TeMakenStappen = STAPPEN_PER_TOTAAL_OMWENTELING1 ; // draai 1x rechtsom
small_stepper.setSpeed(500); // zet de snelheid
small_stepper.step(TeMakenStappen); // loop
}else if (toestandknop2 == HIGH) {
TeMakenStappen = STAPPEN_PER_TOTAAL_OMWENTELING2 ; // draai 0,5 keer linksom
small_stepper.setSpeed(500); // zet de snelheid
small_stepper.step(TeMakenStappen); // loop
}
Vraagje: kunnen knop1 en knop2 tegelijk ingedrukt zijn?
NB: Ik stel voor om de namen "knop1" en "knop2" te vervangen door resp. "knop1Pin" en "knop2Pin", dat is duidelijker.
En als je toch bezig bent: "STAPPEN_PER_TOTAAL_OMWENTELING1" en idem2 kunnen beter "STAPPEN_PER_TOTAAL_OMWENTELING_RECHTSOM" resp. "STAPPEN_PER_TOTAAL_OMWENTELING_LINKSOM" heten, dan zegt de naam tenminste precies waar het voor dient.
Deze regel (staat er twee keer in) lijkt mij weinig zin te hebben, de waarde is zo te zien altijd 500.
small_stepper.setSpeed(500);
Beter verplaatsen naar void setup(), dan wordt 'ie eenmalig uitgevoerd.
/*
Het programmablok void setup wordt eenmaal beschreven
*/
Hier wordt ongetwijfeld bedoeld "eenmaal uitgevoerd". Puntjes op de i...
Ik zie nu ook (pas) dat je pin 1 gebruikt als input voor een knop. Maar op de Uno is dat de TX-pin van de seriepoort, en die kun je / mag je dus niet gebruiken! Verplaats de draden op pins1 en 2 even naar bv. 2 en 3!
Zo, dat houdt je wel even bezig, kan ik even gaan puzzelen over die delay()..
kortom, alle goede dingen komen langzaam
Geeft niet, als ze maar komen.
Ja hoi Erik , alvast erg bedankt voor alle moeite en tijd die je aan mijn project hebt gespendeerd
De laatste sketch met de twee knoppen kan ik evt gebruiken om te leren hoe je steppermotor code en drukknop/microswitch code in één sketch kunt laten werken, dat is ook nodig want ik heb me laten wijsmaken dat in tegenstelling tot de Raspberry pi de Arduino maar één programma tegelijk kan draaien dus daar móeten alle functies dan ook in zijn samengevat
Noodzakelijke volgende stap in mijn leerproces is dat ik alle sketches maar eens uitprint op papier en de aparte regels of alinea's m.b.t. de verschillende functies uitknip en met elkaar vergelijk en een soort GGD m.b.t. de functies ontdek en, als alles meezit, ook nog een logische volgorde en ja, dat kan ook in de pc maar met papier kun je nou eenmaal sneller schuiven, combineren en alles overzien enz
Vanmorgen heb ik ook al code gevonden om de motor (met één, twee of drie knoppen? even vergeten) direct! linksom en rechtsom te laten draaien én ook direct te laten stoppen, ik was dus op zoek naar vooral die laatste functie
(Verder wordt de verleiding steeds groter om een kant en klaar digitaliseerding van 435 euro te kopen maar natuurlijk alleen om aan te kunnen tonen dat de mijne veel beter wordt hopelijk heb ik de mijne aan de draai vóórdat ik zo'n ding moet kopen koop)
Mvg
kees
P.S. vanmiddag bezig met printen, knippen (en plakken) van coderegels, heb al 5 sketches klaar
dit is dus de in m'n vorige post genoemde sketch met drie direct werkende pushbuttons en een steppermotor 28BYJ-48
maar het is wel een super ONoverzichtelijk filmpje en deze meneer gebruikt ook nog eens twee dezelfde kleur draden (grijsbruin) voor twee verschillende knoppen en tot overmaat van ramp is een wiring diagram natuurlijk weer niet bijgesloten dan met onnodig lastig gedoe met een link waarna je het nog niet kan vinden... , wat is dat toch met die wiring diagrams?? schamen Arduino en/of programmeurs/ontwikkelaars zich daar voor?
of die diagrams zijn er helemaal niet of je kunt er niet bij of het moet lastig, uiterst lastig (hou toch op...)
kortom, te onnodig lastig om deze sketch uit te voeren en je hebt hoogstens wat houvast aan de code zelf maar zover ben ik nog lang niet ...
/*
* This is Arduino code to control 28BYj-48 with ULN2003 board using
3 push buttons. STPB-1
* Written by Ahmad Shamshiri for Robojax Robojax.com
* on Feb 20, 2019 at 19:34 in Ajax, Ontario, Canada
Watch the video instruction for this sketch: https://youtu.be/q-H7GbyX5ho
STPB-1 Control Stepper 28BYJ-48 Push buttons using Arduino code CCW, CW STOP STPB-1
STPB-2 Controlling Position of 28BYJ-48 Stepper Motor with 2 Push buttons STPB-2
STPB-3 Controlling ONE Revolution of 28BYJ-48 Stepper Motor with 2 Push buttons STPB-3
STPB-4 Send 28BYJ-48 Stepper Moor to any Angle with 3 Push buttons STPB-4 CW, CCW and STOP
You can get the wiring diagram from my Arduino Course at Udemy.com
Learn Arduino step by step with all library, codes, wiring diagram all in one place
visit my course now http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this. You can support me on Patreon http://robojax.com/L/?id=63
or make donation using PayPal http://robojax.com/L/?id=64
*
* Code is available at http://robojax.com/learn/arduino
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int Pin1 = 10;//IN1 is connected to 10
int Pin2 = 11;//IN2 is connected to 11
int Pin3 = 12;//IN3 is connected to 12
int Pin4 = 13;//IN4 is connected to 13
int switchCW =2;//define input pin for CW push button
int switchStop=3;//define input pin for Stop push button
int switchCCW =4;//define input pin for CCW push button
int pole1[] ={0,0,0,0, 0,1,1,1, 0};//pole1, 8 step values
int pole2[] ={0,0,0,1, 1,1,0,0, 0};//pole2, 8 step values
int pole3[] ={0,1,1,1, 0,0,0,0, 0};//pole3, 8 step values
int pole4[] ={1,1,0,0, 0,0,0,1, 0};//pole4, 8 step values
int poleStep = 0;
int dirStatus = 3;// stores direction status 3= stop (do not change)
void setup()
{
pinMode(Pin1, OUTPUT);//define pin for ULN2003 in1
pinMode(Pin2, OUTPUT);//define pin for ULN2003 in2
pinMode(Pin3, OUTPUT);//define pin for ULN2003 in3
pinMode(Pin4, OUTPUT);//define pin for ULN2003 in4
pinMode(switchCW,INPUT_PULLUP);// CW push button pin as input
pinMode(switchStop,INPUT_PULLUP);//Stop push button pin as input
pinMode(switchCCW,INPUT_PULLUP);//CCW push button pin as input
}
void loop()
{
if(digitalRead(switchCCW) == LOW)
{
dirStatus =1;
}else if(digitalRead(switchCW) == LOW)
{
dirStatus = 2;
}else if(digitalRead(switchStop) == LOW)
{
dirStatus =3;
}
if(dirStatus ==1){
poleStep++;
driveStepper(poleStep);
}else if(dirStatus ==2){
poleStep--;
driveStepper(poleStep);
}else{
driveStepper(8);
}
if(poleStep>7){
poleStep=0;
}
if(poleStep<0){
poleStep=7;
}
delay(1);
}// loop
/*
* @brief sends signal to the motor
* @param "c" is integer representing the pol of motor
* @return does not return anything
*
* www.Robojax.com code June 2019
*/
void driveStepper(int c)
{
digitalWrite(Pin1, pole1[c]);
digitalWrite(Pin2, pole2[c]);
digitalWrite(Pin3, pole3[c]);
digitalWrite(Pin4, pole4[c]);
}//driveStepper end here
UPDATE OP UPDATE OP UPDATE...
zelfde meneer, lijkt overzichtelijk wiring diagram nu met verschillende kleuren voor elke verbinding
En toen had ik geen 3e pushbutton meer in huis
Mvg,
kees
Ehh Erik, ' ben een aantal dagen bezig geweest om codes te proberen met m'n oude 28BYJ-48 stappenmotortje maar de code voor dat motortje lijkt net even anders te zijn dan voor m'n NEMA 17 dus met die laatste ga ik nu weer door om het eenvoudig te houden
Mvg
kees
dan wel een vraag, welke driver zit ertussen, en hoe stuur je die aan, want de canadees gebruikt enkel 5 Volt met vier spoelen, maar een NEMA motor heeft maar 2 spoelen en moet dus ook anders aangestuurd worden. dus gebruik je een L293 of een A4988 driver.
op de laatste hoef je alleen maar een puls te zetten vandaar de vraag, en teken het even dan snap je misschien wel vanzelf hoe het aangestuurd moet worden.
liefst in fritzing
Ja hoi Shooter,
de NEMA 17 wordt verzorgd door een L298N dubbele H-brug driver en gevoed door een (instelbare) trafo met 12v (1000mA(12V))
deze NEMA 17 drijft met een rubber snaar de centrale projector-as met sluiter ("vlinder") van de projector aan Op de platte kant van deze sluiter komt een plakmagneetje dat na elke 360 graden omwenteling van de sluiter een Velleman VMA308 reed switch omschakelt van 0 naar 1
UIteindelijk is het de bedoeling dat er een Arduino sketch komt waarmee de steppermotor iedere keer de projector-as zover rond draait (+- 360 graden) tot de reed switch "aanslaat" en de Arduino code de motor een seconde of 3 stopt om een digitale camera het voorstaande filmbeeldje te laten fotograferen...
...waarna de motor weer opnieuw gaat lopen om de projector-as weer 360 graden te laten lopen, de reed switch opnieuw aanslaat, de motor weer stopt en het volgende filmbeeldje gefotografeerd kan worden enz enz (speciale telecine software maakt van al die foto's dan een complete film)
' kan evt complicatie optreden dat de motor weer moet gaan lopen met de reed switch nog op 1, da's dus een uitdaging
Maar daar is ook alles mee gezegd "Zou" eigenlijk een heel eenvoudige sketch moeten zijn maar hoe?
Mvg ,
kees
P.S. foto is de allereerste test-opzet, inmiddels zijn bijna alle componenten gesitueerd op plaat multiplex van 25 x 50cm
maak een stap,
if (je reed aan is){even naar een functie dat je camera laat gaan}
wacht even (mag met delay bijv. 100 msec.
en begin weer bovenaan.
en ja ik kan het voorkauwen, maar veel liever dat je zelf een programma schrijft
het zijn 5 regels in totaal.
Ehh, ' heb liever dat je het "voorkauwt" als je dat niet erg vindt Shooter , met het toepassen (en evt hier en daar aanpassen) van een kant en klare code leer ik op dit moment meer dan van een code waarvan ik absoluut niet weet waar te beginnen dan tegen een lege of deels gevulde void setup en void loop aan te kijken
ik heb gelukkig al sketches met code voor het lopen vd motor en sketches met code voor een drukknop (werkt ook met switch neem ik aan) en zelfs een sketch met lopen vd motor én een drukknop maar ook dan nog is het voor een beginner als ik zowat onmogelijk een en ander te overzien, laat staan lopend te krijgen
ben er wel net in geslaagd m'n Arduino 1.8.4 IDE van een donkere achtergrond te voorzien, dat laat een aantal dingen in verschillende kleuren zien, dat leek me wel zo handig
verder heb ik al 9 sketches uitgeprint en in aparte alinea's van constanten, void setups en void loops uitgeknipt, dat maakt het vergelijken van de syntax van dezelfde onderdelen van verschillende sketches wel een stuk makkelijker
resumé:
motor CW laten lopen
motor stoppen bij reed switch op 1 (als de centrale as van de projector 360 graden heeft afgelegd)
pauze (+- 3 seconden)
reed switch code weer op 0 zetten, wsch in void loop
motor weer CW laten lopen
Mvg,
kees
P.S. mijn digitale camera heeft alleen maar afstandsbediening met een tablet of smartphone
Én ik heb vanmiddag net een betere en afstelbare "cameratafel" gemaakt die ik in hoogte en helling en dus waterpas kan afstellen en daarom op de optische as van het projector-objectief kan positioneren Trouwens, dat projector-objectief projecteert het filmbeeldje direct op de sensor van de digitale camera
oke, even de foto? wat zit waar aangesloten, en wat is de driver waarschijnlijk een L293 of zo, welk programma gebruik je nu en waar loop je tegen aan.
@keithjansen : film digitaliseren met eenvoudige Arduino-code - #10 by MAS3 - Nederlands - Arduino Forum
Ehh nee, voor de NEMA 17 wordt een L298N dubbele H-brug driver gebruikt... en aansluitingen zijn op foto te zien
Mvg,
kees
Zie foto van NEMA 17 in de projector geplaatst, op deze manier kan de snaar ook nog losser of strakker afgesteld worden
Update...
Arduino forum wil m'n foto niet laten zien , wat zijn de voorwaarden voor het plaatsen van jpg's eigenlijk??
Mvg ,
kees
Een foto moet niet te groot zijn.
Meestal zal 800x600 al meer dan genoeg zijn.
Verder kan een *.jpg bestand veel meer bevatten dan het plaatje.
Bijvoorbeeld wanneer je je mobiel gebruikt voor de betreffende foto, dan zet die er bij welk toestel er gebruikt is, en wanneer beschikbaar ook op welke GPS positie die foto gemaakt is.
Ik kon een aantal jaren geleden een vraagsteller vertellen dat hij met zijn Huawei P6 telefoon in een plaats Engeland ook scherpere foto´s moest kunnen maken die beter bruikbaar zouden zijn.
Waarop die persoon aardig uit z´n dak ging over hoe ik dat allemaal kon weten.
Met andere woorden, wanneer je met je mobiel foto´s maakt kun je je eigen privacy aardig te grabbel gooien (dat was destijds de reden dat ik die vraagsteller er op wees).
Daarom is dat nu een reden voor de forumsoftware om uit veiligheidsoverwegingen een foto die EXIF data bevat niet toe te laten.
Je kunt dit heel snel oplossen met een foto bewerk programma (tip: the Gimp).
Verklein de foto door 'm bij te snijden zodat alleen de relevante data er in staat.
Pas dan de resolutie aan zodat er niet teveel bits verstookt moeten worden door het forum om jouw fotootje aan iedereen te laten zien.
Sla je foto tenslotte op als *.PNG bestand, en voeg dat toe aan je bericht.
Sinds kort worden toegevoegde foto's automatisch in je bericht getoond.
Een *.PNG bestand kan geen EXIF data bevatten dus dat word met die conversie overboord gegooid, en het is het andere foto bestandsformaat dat op het forum is toegestaan.
aha, dank je wel Mas
een en ander kon ook met: file info in photoshop zag ik net, opslaan als PNG idem dito
dit is dus de linkerkant van de omgebouwde projector waar de originele motor (en de trafo) plaats hebben gemaakt voor de NEMA steppermotor met een poelie/snaarwiel en dat zit dan weer afstelbaar vast mbv wat mecano
Op de sluiter van de projector (de "vlinder") die je nét tussen de ketting door kunt zien komt een plakmagneetje die na elke 360 graden omwenteling de mini magnetic micro reed switch van 0 naar 1 zet
nu eerst even kijken of de foto meekomt
Mvg,
kees
wel opletten waar je het magneetje plaatst, want dat moet natuurlijk wel zijn dat het transport stil staat en de lamp aan is, ofwel als de haakjes de film hebben losgelaten.
ja daar was ik natuurlijk al van op de hoogte Shooter maar bedankt voor het meedenken (btw, de LED-lamp is altijd aan) en heb je je 5 regels code al klaar?...
ik moet eerst nog bezig met een optisch- (en kleur-) neutraal glaasje voor m'n digitale camera (om de sensor te vrijwaren voor stof enz)
Wat ik nu heb - een stukje "cell" = transparant spul waar ze vroeger tekenfilms op tekenden - laat een verschil in scherpte zien in het te fotograferen filmbeeldje en dat kan absoluut niet
oh ja, ik kan het beeld van de digitale camera zien op m'n tablet met de Canon connect app ons bent handig!!
daarna moet ik ook nog een beter afstel-ding van mecano maken voor m'n 10 watt LED met een "diffuser" erbij want met name de hoeken van het filmbeeldje worden niet goed uitgelicht ' ben bang dat de volle 10 watt van m'n LED aan moet (gereguleerd met een trafo, een weerstand en een pot-meter)
btw, ik heb een paar dagen niet kunnen forummen omdat m'n ww in firefox het niet meer deed (vreemd) Net een nieuw ww gemaakt en ja hoor, ut werkt en daar ben ik weer
Mvg,
kees
keithjansen:
... ik heb een paar dagen niet kunnen forummen omdat m'n ww in firefox het niet meer deed (vreemd) Net een nieuw ww gemaakt en ja hoor, ut werkt en daar ben ik weer
Dat ligt niet aan het wachtwoord of aan Firefox, maar aan de forum software.
Daar is zoveel aan gerommeld om het een eigen Arduino gezicht te geven dat het nu van alle kanten rammelt en uit elkaar valt.
Er zijn dus nog veel meer problemen, en die kunnen jij en ik met geen mogelijkheid oplossen.
Geen nieuw wachtwoord maken dus en ook niet aan Firefox twijfelen.
Net zo vaak proberen tot het wel lukt.
Ga eens naar een andere pagina en probeer het van daar uit bijvoorbeeld, of je ziet dan dat je toch wel ingelogd bent.
Op deze pagina met jouw vraag, druk eens een paar keer op F5 (verversen); kan zomaar zijn dat je dan ineens wel bent ingelogd.
Niet fijn en zeer onprofessioneel, maar het is niet anders.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.