Nou, twee uurtjes.
Ik heb er ook weer wat tijd in gestoken om de test te maken (heb laptop van t weekend voorzien van nieuwe SSD harde schijf en batterij, waardoor die nu langer meegaat dan ooit, maar moest daardoor dus wel alles weer opnieuw installeren).
Maar mooi toch dat het werkt nu.
Kun je dat stuk ook weer in je distiller gaan verwerken.
En het spul zo langzamerhand gaan samenbouwen lijkt me.
Is toch geen weer om in de tuin van te genieten, dan maar beetje knutselen.
Als je klaar bent met het bewegen van de motor, dan zet je 'm uit.
En je bent er klaar mee als je net uit die while() bent gekomen.
Ik heb die accelstepper ff opgezocht.
Jij gaf elke keer op dat ie 20000 stappen moest gaan zetten als ik het goed zie, in ieder geval geef je telkens die 20000 op terwijl dat niet nodig is (denk ik).
Daarna zet je telkens 1 stap door volgende te doen:
stepper1.run();
.
Ik heb het een beetje veranderd zodat je maar 1 keer opgeeft waar je heen wil (dus al voor de while() ).
In de while() doe je dan niets meer dan zeggen dat ie een stap moet nemen.
Als je uit de while() komt kun je dus de motor uitzetten.
En daarna de teller op nul zetten.
Als ik de gebruiksaanwijzing goed heb begrepen, moet dat op deze manier werken:
#include <LiquidCrystal.h>
#include <AccelStepper.h>
#define HALFSTEP 8
// Motor pin definitions
#define motorPin1 7 // IN1 on the ULN2003 driver 1
#define motorPin2 9 // IN2 on the ULN2003 driver 1
#define motorPin3 10 // IN3 on the ULN2003 driver 1
#define motorPin4 11 // IN4 on the ULN2003 driver 1
// gebruik deze volgorde IN1-IN3-IN2-IN4 voor gebruik met AccelStepper met 28BYJ-48 stappenmotor
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
LiquidCrystal lcd(12, 11, 8, 5, 4, 3, 2);
int kraanStand ;
void setup() {
stepper1.setMaxSpeed(1000.0);
stepper1.setAcceleration(100.0);
stepper1.setSpeed(300);
stepper1.moveTo(20000); // laat de stappenmotor STRAKS 20000 stappen nemen
while (analogRead (A1) > 372) { // Waneer analoog (A1) >372 blijf dan deze opdracht uitvoeren tot (A1)< 372
// En verlaat dan setup (Dit doet hij maar 1x !!!
stepper1.run(); // stappenmotor start
}
stepper1.stop(); // We waren klaar met bewegen, en dus kan de motor uitgezet worden
stepper1.currentPosition (); // Reset de teller van Accelstepper, waar we nu zijn is het nieuwe nulpunt
} // einde setup
void loop() {
lcd.setCursor (1, 1);
lcd.print("Klaar !");
} // einde loop
Alles nu in het uiteindelijke programma gezet.
Ook nog wat toegevoegd.
wanneer het programma start komt er eerst in het beeld te staan
Reset stappenmotor.
De stappenmotor gaat nu netjes lopen en draait de naaldkraan dicht.
Als dat klaar is komt er netjes in beeld te staan resetten voltooid.
de counter word op nul gezet.
en de uitgangen voor de stappenmotor worden uitgezet
anders word de stappen motor erg heet als hij niet gebruikt word.
alleen kwam ik er achter dat de opdracht
stepper1.stop();
niet werkte, en dat er stroom bleef lopen.
Zodat de motor toch warm word.
Na een poosje zoeken op het internet.
De volgende oplossing gevonden.
stepper1.disableOutputs();
Nu worden de uitgangen uitgezet.
En de motor word niet meer warm
In het hoofdscherm komt nu ook netjes de waarde van de potmeter te staan.
Dit moest ik nog invoeren.
zodat ik netjes onder het stoken kan zien.
Dat de potmeter werkt.
Het volgende dat ik nu moet gaan doen is het volgende.
Ik denk dat ik dit eerst ga toevoegen in ons laatste programma.
het aansturen van de stappenmotor/naaldkraan in 24 stappen.
dus 0 betekend volledig dicht
en 24 volledig open (drie hele slagen naaldkraan is helemaal open)
eerst zal ik dan moeten gaan uitrekenen hoeveel stappen het is
van dicht naar open.
Dit kan ik dan ook invullen in plaats van de 20000 stappen,
Die ik nu gebruik om de kraan dicht te zetten.
Ik heb de 24 standen later nodig om de naaldkraan.
Bij een bepaalde temperatuur te gaan gebruiken.
En dan hoef ik nog maar een ding te kunnen.
en dan heb ik het programma voor een 95 procent af.
Is wanneer hij in het hoofd scherm staat en ik aan het distilleren ben.
Dat het programma de naaldkraan bv op opening 18 heeft staan.
Dat ik dan met de up en down toetsen een stap kan verhogen en kan verlagen.
vandaar dat er in het hoofdscherm naaldkraan staat
daar komt dan achter te staan welke opening op dat moment er is.
Hoop dat dit een beetje duidelijk is wat ik wil.
Anders graag even reageren!
ga nu het programma kompleet maken en dat zet ik er zodadelijk bij.
#include <LiquidCrystal.h>
#include <AccelStepper.h>
#define HALFSTEP 8
// Motor pin definitions
#define motorPin1 7 // IN1 on the ULN2003 driver 1
#define motorPin2 9 // IN2 on the ULN2003 driver 1
#define motorPin3 10 // IN3 on the ULN2003 driver 1
#define motorPin4 13 // IN4 on the ULN2003 driver 1
// gebruik deze volgorde IN1-IN3-IN2-IN4 voor gebruik met AccelStepper met 28BYJ-48 stappenmotor
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
LiquidCrystal lcd(12, 11, 8, 5, 4, 3, 2);
int kraanStand ;
void setup() {
stepper1.setMaxSpeed(1000.0);
stepper1.setAcceleration(100.0);
stepper1.setSpeed(300);
stepper1.moveTo(20000); // laat de stappenmotor 20000 stappen nemen
while (analogRead (A1)> 372) { // Waneer analoog (A1) >372 blijf dan deze opdracht uitvoeren tot (A1)< 372
// En verlaat dan setup (Dit doet hij maar 1x !!!
stepper1.run(); // stappenmotor start
}
stepper1.disableOutputs(); // We waren klaar met bewegen, en dus kan de motor uitgezet worden
stepper1.currentPosition (); // Reset de teller van Accelstepper, waar we nu zijn is het nieuwe nulpunt
} // einde setup
void loop() {
lcd.setCursor (1,1);
lcd.print("Klaar !");
} // einde loop
Ik heb even gekeken hoeveel stappen hij moet zetten.
Dit zijn er toch meer als ik gedacht had.
er is voor een hele kraanslag 8234 stappen nodig !!
en voor volledig open 3 slagen.
Dat zijn 24702 stappen
deel ik deze door 24 kom ik uit op :
1029.25
zeg maar 1030 afgerond
Nu maar eens gaan kijken hoe ik dat software matig ga overzetten
Kijk eens naar map.
Daarmee kun je een bereik omrekenen.
Of dat helemaal goed gaat op die manier weet ik ook niet, maar je laat het rekenwerk dan dus aan de Arduino en/of de compiler over.
Het word dan zoiets als dit:
WaardeUit = map (waardeIn,0,24,0,24702);
Of je doet gewoon stap maal duizend, kom je ook wel redelijk in de buurt lijkt me.
als de while loop klaar is (dus potmeter is <372) dan stepper1.stop doen.
net zoals die klaar dingen kunnen die ook in de setup,
en ja dan zet je een teller op 0
tjonge int teller=0;
ja die stappenmotoren kunne eigenlijk helemaal geen 12 volt hebben (afhankelijk van de elektronica) dus
dus als de klep dichtstaat motor uit zetten.
in de regling zou ik dat trouwens ook doen, dus 1 stap zetten en dan weer gelijk uit, als er nog een stap gedaan moet worden dan zet je het ding gewoon weer aan.
het is overigens handiger als je in de setup een functie aanroept om de klep te resetten
en die hele while cyclus met rest in een functie zet.
als je straks een mooier programma hebt dan kun je af en toe die klep resetten door op een knop te duwen of een commando te geven.
.
Ik moet voor het programma de gecorrigeerde kooktemperatuur berekenen
van ethanol
deze is afhankelijk van de buitenluchtdruk.
ik heb hiervoor een luchtdruksensor
de formule om dit te berekenen is:
de gemeten luchtdruk / 1013 x 78.1 = gecorrigeerde kooktemperatuur
dat gaat ongeveer 1% schelen en dat is onder de nauwkeurigheid van je druksensor, dus eigenlijk niet interessant om te doen.
je kunt ook gewoon de actuele druk (van buienradar) in je programma invoeren via serial.
je zult dus eerst moeten opzoeken hoe je de sensor moet lezen, en omzetten naar millibar.
dan float EtOH= (druk/1013*78.1)
We doen niet aan x, maar gebruiken daar het * sterretje voor.
Je moet er wel voor zorgen dat readPressure en EtOH op de juiste wijze gedeclareerd worden.
Nou, Rolf schijnt er mee opgehouden te zijn, of geen hulp meer nodig te hebben (kan ook).
Als er nog vragen komen, ben ik graag bereid er naar te kijken hoor.
Rolf, MAS3 en Duiker, ik ben aan het verder werken aan de sturing.
Ik heb een 4de temperatuursensor toegevoegd en ga verder een solenoid aansturen voor voorloop en naloop af te voeren en de naaldkraansturing aanpassen naar mijn wensen.
De solenoid voor het koelwater laat ik aan gaan bij het aanschakelen van de ssr
Ik wil heel graag samen werken om dit project af te werken en ben onder de indruk van het reeds uitgevoerde werk, indrukwekkend!!!
Bres, ik ben niet een heel regelmatige bezoeker van dit forum. Ik zeg het maar.
Heb jij het deel met de stappenmotor al klaar dan? (En ken ik jou toevallig onder een andere naam op een ander forum?)
Ik zit me af te vragen welke naaldkraan nou eigenlijk het meest geschikt is. En hoeveel slagen dan open en dicht is. Om vervolgens daar een stappenmotor op te gaan kopen. Het liefst een stappenmotor met terugkoppeling.
Duiker, ik denk niet dat we elkaar kennen ...
Ik ben een het experimenteren met een stappenmotor op een naaldkraan (swagelok) 1/2" en een stappenmotor op een bolkraan.
Het voordeel van een bolkraan is de kleine verplaatsing en vermoedelijk voldoende precisie, na een tryout manueel op mijn distillator, soit, ik laat het je weten ...
Ik heb waarschijnlijk de oplossing voor de luchtdruk correctie ...
Wanneer het af is post ik het hier.
Dan nog de aansturing van de SSR waaraan ik de solenoid voor het koelwater koppel.
dan de soft verder afwerken voor de stookcyclus
Nog genoeg werk ....
Hoe ver zit jij?
waaraan werk jij?
Ik weet dat het inderdaad een tijdje geleden is.
Maar dit project heb ik even aan de kant gezet om andere projecten af te maken.
Ook door verandering werk en privé heb ik nog erg weinig tijd gehad voor deze mooie hobby.
Ik heb even mijn proef bordje gepakt en gekeken hoever ik nu eindelijk ben.
heb wel nog wat kleine veranderingen gedaan om het werkend te krijgen.
Zo heb ik nu een lcd met een LiquidCrystal_I2C gebruikt om zo minder digitale uitgangen te gebruiken.
ik zal de laatste code toevoegen hoever ik nu ben.
Ik zal proberen om het forum veder bij te werken met wat foto's en schema's hoe het nu is.
Ik heb het nog niet aangesloten op mijn distilleer ketel.
dit wil ik wel gaan doen om het een en ander te testen.
Maar hier kan nogal wat tijd over heen gaan.