Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

Arduino

Indította gaben, 2025 február 03, 18:09

Előző téma - Következő téma

4umhue7vh

Sziasztok! Valaki valaki tudna nekem csinálni egy olyan programot, amivel  léptetőmotort, egy kézikerék segítségével tudok forgatni, és kiírja a pozíciót egy kijelzőre?  Csak egész lépés kell, 5mm emelkedésű orsó direktbe lenne hajtva.
Természetesen megfizetem.
Vagy ha esetleg van valami ilyen Kínai kütyü.....

s7manbs8

Van már hardvered is hozzá ?

Kerékre gondolok.

- Kerék pozíció beolvas.
- Ha változott motor léptetése
- Kiírás képernyőre.

Lehet kapni is ilyesmit, ki tudja, mindenesetre nem túl bonyolult feladat.

Arduinoban egy encoderrel, amit forgatsz, jó bemenetnek, keréknek, a többi is alap dolog, step-dir-es léptető vezérlőnek meg jelet kell csak kiadogatni.
Impulzusokat.

Képernyőre kiírás is egy alap dolog, ahhoz sem kell túl sok mindent csinálni.

s7manbs8

Mekkora motor kell hajtani ?

Ahhoz is van már vezérlőd ?

4umhue7vh

Motor és vezérlő van, step/dir jel kellene neki. Egy akármilyen, pár százas osztású encoderre  gondoltam kézikeréknek.

4umhue7vh

Van Arduino uno, nano,is csak kijelző nincs, ki kellene találni milyen kell, nagy méretű led vagy oled lenne jó,5.6 karakter, 1 tizedes pontosság elég.


s7manbs8

Aha, egy olyasmi jó lehet.

Akkor szinte minden meglenne.


000000000


mjfpgx8v0

https://photos.app.goo.gl/AfZqWxzIKRx4FIGm1

Itt is hasonló a helyzet, igaz nem kézikerék, hanem főorsón van az encoder, és éppen 1:12 áttétel van beállítva...

mjfpgx8v0


000000000

Valaki tud olyan projektet 2 szenzor összehasonlitás alapján pid hömérséglet szabályzást tud![#conf]
arduino.. esp8266 alapon...

szf

Este megkeresem. PM küldöm.

000000000


000000000

Valakinek van ötlete mért nem nullázódik nyomogombnál newPosition=0; hol ragad be a tárolt érték?





 #include <Encoder.h>
long oldPosition  = 0;
  int  feedRate = 1800;
  char axis     = 'X';
long  newPosition=0;

 
 #define       BUTTON    D0
  Encoder myEnc(D1, D2);
       
void setup(void)
{
    Serial.begin(115200);    
    Serial.flush();
   
   
    pinMode(BUTTON, INPUT_PULLUP);  // Initiate Connectivity
   // digitalWrite(LED0, !LOW);       // Turn WiFi LED Off
   
}
 
 
void loop()
{
 
  if( !digitalRead(BUTTON) )
        {
          newPosition=0; // Nem kel újra létrehozni a már meglevő változót.
          Serial.println("button");
          //Serial.println(newPosition);
          delay(100);
          Serial.flush();  // Ez minek ide?
           Encoder_1();
        }
 
 
 Encoder_1();

}
 
void Encoder_1()
{
   newPosition = myEnc.read()/4;
  if (newPosition != oldPosition)
        {
         
    oldPosition = newPosition;
    //Serial.println(newPosition);
    Serial.printf("G0 %c%d F%d\n",axis,newPosition,feedRate);
    Serial.println(newPosition);
        }
 
  }    
  Serial.flush();
         
 }