Mini CNC osa Z

Odpovědět
Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Mini CNC osa Z

Příspěvek od Hanz » 29 dub 2019, 07:36

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

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Re: Mini CNC osa Z

Příspěvek od Axamith » 29 dub 2019, 09:40

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.

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 30 dub 2019, 08:21

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

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 13 kvě 2019, 17:06

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

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 15 kvě 2019, 16:34

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

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);
  }
zamotávám se do toho čím dál víc, hlava nebere a musím na noční, díky za rady Hanz

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Mini CNC osa Z

Příspěvek od kiRRow » 17 kvě 2019, 15:15

problém máš u špatně napsaných podmínek ... do závorek jsi napsal v podstatě konstrukci funkce FOR

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;
}

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 18 kvě 2019, 09:29

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      
}

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Mini CNC osa Z

Příspěvek od kiRRow » 18 kvě 2019, 09:49

chybí mi nad tím

Kód: Vybrat vše

void setup() {
int pos = 0;
// a další proměnné ... nastavení vstupů a výstupů ..
}
... 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 "

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 18 kvě 2019, 19:38

tohle je úvod programu

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
}
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

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: Mini CNC osa Z

Příspěvek od Hanz » 19 kvě 2019, 09:37

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 :

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);
}
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

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů