Mini CNC osa Z
Mini CNC osa Z
Dobrý den potřebuji poradit jak zobrazit u CNC Arduino Uno + CNC shildu pozici serva led diodami jako je to ve videu
https://www.instructables.com/id/How-to ... duino-and/
Děkuji Hanz
https://www.instructables.com/id/How-to ... duino-and/
Děkuji Hanz
Re: Mini CNC osa Z
V horní úvrati osy Z mít koncový spínač, Hallovu sonda nebo jiný snímač. A sleduješ Stav log. 0/1 (OFF/ON). Podmínkou ovládáš dvoubarevnou LED.
Další možnost je sledovat výstup na osu Z přímo z CNC shieldu a podmínkou ovládat LED.
Nic bližšího v této chvíli asi nemá smysl psát, nikdo neví, v jaké fázi rozpracovanosti CNC máš, jaký kód atd.
Další možnost je sledovat výstup na osu Z přímo z CNC shieldu a podmínkou ovládat LED.
Nic bližšího v této chvíli asi nemá smysl psát, nikdo neví, v jaké fázi rozpracovanosti CNC máš, jaký kód atd.
Re: Mini CNC osa Z
mini cnc je postaveno, funkční a dolaďuji pouze přesnost kreslení /tj osu Z/, používám v Arduino IDE - grbl-mi - grblUpload, v Inkscape - Mi grbl Z-axis servo controller a ovládání kreslení přes Universal Gcode Sender vr.1.0.7.
K Arduino UNO je Arduino CNC Shield V3 GRBL + budiče A4489
K Arduino UNO je Arduino CNC Shield V3 GRBL + budiče A4489
Re: Mini CNC osa Z
ahojky, zatím jsem stále nepřišel jak pomocí Led zobrazit zda je servo nahoře nebo dole jak ve videu. našel jsem na netu tohle video: http://robojax.com/learn/arduino/?vid=r ... D-DC-motor . Ale řízené není servo, ale motor z H-můstku. Pomocí spínače, koncáku atd. není špatný nápad, ovšem to není to co na videu tady : https://www.youtube.com/watch?v=fA4PR5w6JDk. díky za rady
Re: Mini CNC osa Z
pokouším se na něčem jednoduchém signalizovat polohy serva led diodou, ale nedaří se mi. Pokouším se dát podmínku když je servo v jedné poloze svítí led1 a když je v druhé poloze svítí led2.Tady je sketch, který jsem poskládal :
poloha servo 2xled
zamotávám se do toho čím dál víc, hlava nebere a musím na noční, díky za rady Hanz
poloha servo 2xled
Kód: Vybrat vše
#include <Servo.h> //zahrnutí knihovny pro ovládání servo motoru
Servo myservo; //každý motor má svou instanci třídy Servo
int pos = 0; //proměnná obsahující pozici motoru (úhel natočení)
int led1 = 13; //první dioda
int led2 = 12; //druhá dioda
void setup()
{
myservo.attach(9); //tento motor je připojen na pin 9
pinMode(led1, OUTPUT); //nastavení funkce led1
pinMode(led2, OUTPUT); //nastavení funkce led2
}
void loop() {
for(pos = 0; pos <= 180; pos += 1) //je od úhlu 0 do úhlu 180
myservo.write(pos); //natočení motoru na aktuální úhel
delay(15); //chvilka čekání než se motor natočí
}
if myservo(pos = 0; pos <= 180; pos += 1) {
digitalWrite(led1, HIGH);
}
for(pos = 180; pos >= 0; pos -= 1) //je od úhlu 180 zpět do úhlu 0
{
myservo.write(pos); //natočení motoru na aktuální úhel
delay(15); //chvilka čekání než se motor natočí
if myservo(pos = 180; pos >= 0; pos -= 1) {
digitalWrite(led2, HIGH);
}
Re: Mini CNC osa Z
problém máš u špatně napsaných podmínek ... do závorek jsi napsal v podstatě konstrukci funkce FOR
podmínka se zapisuje takto
podmínka se zapisuje takto
Kód: Vybrat vše
if (PODMÍNKA) {
příkazy které se provedou je-li podmínka splněna
} else {
příkazy které se provedou není-li podmínka splněna
}
pokud chci aby svítila led1 pokud je hodnota natočení dejme tomu menší než 90 ... v opačném případě má svítit led2, pak napíšu
if(pos < 90) {
led1 = true;
led2 = false;
} else {
led1 = false;
led2 = true;
}
Re: Mini CNC osa Z
tak jsem se pokusil definovat podmínku, ale kompilace mě nechce pustit, že není definovaný "pos", ale "pos" je definovaný ?! nebo ne ? něco mám špatně !!! a nevím co !!! tady je program :
Kód: Vybrat vše
void loop() {
myservo.write(0); //natočí servo do pozice 0
if (pos<=0);{
led1 = true;
led2 = false;
}
delay(1000); //čeká 1s
myservo.write(180); //natočí servo do pozice 180
if (pos=180); {
led2 = true;
led1 = false;
}
delay(1000); //čeká 1s
}
Re: Mini CNC osa Z
chybí mi nad tím
... jo a co dělá ten středník v tý podmínce ... koukni jak podmínku zapisovat správně ...
... a podmínka jestli A rovná se B se zapisuje takto if(A==B) ... pokud dáš jen jedno = ... kompilátor to sežere, ale podmínka nebude fungovat správně
if(A==B) // tohle kompilátor zpracuje jako " pokud A se rovná B "
if(A=B) // tohle kompilátor zpracuje jako " Pokud se povedlo do proměnné A zapsat hodnotu z proměnné B "
Kód: Vybrat vše
void setup() {
int pos = 0;
// a další proměnné ... nastavení vstupů a výstupů ..
}
... a podmínka jestli A rovná se B se zapisuje takto if(A==B) ... pokud dáš jen jedno = ... kompilátor to sežere, ale podmínka nebude fungovat správně
if(A==B) // tohle kompilátor zpracuje jako " pokud A se rovná B "
if(A=B) // tohle kompilátor zpracuje jako " Pokud se povedlo do proměnné A zapsat hodnotu z proměnné B "
Re: Mini CNC osa Z
tohle je úvod programu
a pak nemůžu stále přijít na zbytek
v podmínce by mělo být toto :
když je natočené servo na 0 tedy jedna krajní poloha rozsvítí se led1 a led2 je zhasnutá
když se servo dostane do polohy 180 tedy do druhé krajní polohy rozsvítí se led2 a led1 je zhasnutá
ledky jsou tedy přiřazeny krajním polohám a svítí jen v momentě kdy tam jsou. Pokud bude servo v poloze 0 nebo 180 krátko nebo dlouho je jedno led přiřazená poloze musí svítit
začínám a nevím , nevím - zkouším díky za rady
zbytek programu jsem už rozbombardoval
Kód: Vybrat vše
#include <Servo.h> //zahrnutí knihovny pro ovládání servo motoru
Servo myservo; //každý motor má svou instanci třídy Servo
int led1=13;
int led2=12;
void setup()
{
myservo.attach(9); //tento motor je připojen na pin 9
pinMode(led1, OUTPUT); //nastavení funkce led1
pinMode(led2, OUTPUT); //nastavení funkce led2
}
v podmínce by mělo být toto :
když je natočené servo na 0 tedy jedna krajní poloha rozsvítí se led1 a led2 je zhasnutá
když se servo dostane do polohy 180 tedy do druhé krajní polohy rozsvítí se led2 a led1 je zhasnutá
ledky jsou tedy přiřazeny krajním polohám a svítí jen v momentě kdy tam jsou. Pokud bude servo v poloze 0 nebo 180 krátko nebo dlouho je jedno led přiřazená poloze musí svítit
začínám a nevím , nevím - zkouším díky za rady
zbytek programu jsem už rozbombardoval
Re: Mini CNC osa Z
znovu jsem se pokusil poskládat sketch kompilace sise proběhla, ale nesvítí mi v krajních polohách žádná led
tady je sketch :
pořád nevím co je špatně ! díval jsem se na vytvoření podmínek, moc chytrý z toho zřejmě nejsem ! díky za rady
tady je sketch :
Kód: Vybrat vše
#include <Servo.h> //zahrnutí knihovny pro ovládání servo motoru
Servo myservo; //každý motor má svou instanci třídy Servo
int pos = 0; //proměnná obsahující pozici motoru (úhel natočení)
int led1=13;
int led2=12;
void setup(){
myservo.attach(9); //tento motor je připojen na pin 9
pinMode(led1, OUTPUT); //nastavení funkce led1
pinMode(led2, OUTPUT); //nastavení funkce led2
}
void loop()
{
myservo.write(0);
if(pos <= 0)
{
led1 = true;
led2 = false;
} else {
led1 = false;
led2 = true;
}
delay(1250);
myservo.write(180);
if(pos <= 180)
{
led1 = true;
led2 = false;
} else {
led1 = false;
led2 = true;
}
delay(1000);
}
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host