konveyor kontrol için düzeltme ricası .
  • merhaba ;

    arduino ya henüz daha yeni başladım ancak araştırmalarımla bir projenin neredeyse sonuna geldim . basit bir konveyor projesinden yola çıkarak bir çok projeyi birleştirip bana göre başarılı sonuçlar bile aldım :)
    Şimdi yapmak istediğimi ve yazabildiğimi sizlerle paylaşıp sorunlarıma çözüm için yardımlarınızı bekliyorum .

    *tuş takımına bir sayı yazılır
    *bu sayı ekranda gösterilir
    *röle motoru çalışır pozisyona getirir
    *ürünler geçer lazer sensör okur
    *geçen ürün sayısı girilen ürün sayısına eşit olduğunda motor durur

    bundan sonra

    eğer aynı sayı ile tekrar çalıştırılacaksa (#)
    eğer farklı bir sayı girilecek ise (*)

    (#) tuşuna basıldığında
    *röle motoru çalıştırır
    *ürünler geçer lazer sensör okur
    *geçen ürün sayısı girilen ürün sayısına eşit olduğunda motor durur

    (*) tuşuna basıldığında
    *yeni sayı girilir ve işlemler tekrarlanır .

    neredeyse kod'un tamamı çalışıyor , ufak tefek eksiklikler var tabi

    1- 2 dijit sayı girildiğinde ekranda iki rakamı da göstermesine rağmen sadece 2. sayıyı algılıyor örneğin 15 yazdığımda röle 5. ürün geçtiğinde gücü kesiyor .
    2- (#) tuşuna basıldığında röle enerji vermeye devam ediyor ancak bu kez de girilen sayıyı resetlediği için geçen ürünü sayıyor ancak durdurmuyor .
    3- (*) tuşuna basıldığında hiç bir şey olmuyor .

    biraz uzun yazdım ancak sorunlarım bunlar herkes bir el atarsa inanıyorum hızlıca bir sonuca varacağız .

    İlginze şimdiden teşekkür ederim .


    #include < Wire.h >
    #include < LiquidCrystal_I2C.h >
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    #include < Keypad.h >//Keypad library added
    byte relay = 4, laser_din = 2;

    int counter = 0, piece = 0;
    const byte ROW = 4;//4 row
    const byte COLUMN = 3;//3 column
    char keys[ROW][COLUMN] = {
    {'1', '2', '3'},
    {'4', '5', '6'},
    {'7', '8', '9'},
    {'*', '0', '#'},
    };//4X3 matris created
    byte rowPins[ROW] = { 6, 7, 8, 9 }; //row digital pins
    byte colPins[COLUMN] = { 10, 11, 12 };//column digital pins
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROW, COLUMN );//keymap created
    void setup() {
    lcd.setBacklight(HIGH); // NOTE: You can turn the backlight off by setting it to LOW instead of HIGH
    lcd.begin();
    lcd.print("ENTER PIECE:");
    pinMode(laser_din, INPUT);//laser sensor input
    pinMode(relay, OUTPUT);//relay output
    }
    void loop()

    {char key = keypad.getKey(); //char read from keypad and sent to piece
    if (key)
    {
    lcd.print(key);
    piece = key - 48;//Char to int change
    }
    if (digitalRead(laser_din) == 0)
    {
    delay(20);//Bekleme...
    if (digitalRead(laser_din) == 1)
    {
    lcd.clear();
    counter++;//every piece crossed piece get one more
    lcd.print("Piece:");
    lcd.println(counter);//print counter to screen
    if (counter == piece) //if counter equal to piece
    {
    digitalWrite(relay, HIGH);//relay stop
    lcd.println("FINISH");//write finish
    counter = 0;//reset counter
    piece = 0;//reset piece
    delay(5000);//wait 5 seconds
    lcd.clear();
    lcd.print("ENTER PIECE:");
    lcd.print(piece);
    piece = 0;
    counter = 0;
    }
    }
    }
    if (key == '*')
    {
    digitalWrite(relay, HIGH);//stop
    lcd.print("FINISH:");
    lcd.print(counter);
    piece = 0;
    counter = 0;
    }
    if (key == '#')
    {
    digitalWrite(relay, LOW);//start
    lcd.print(counter);
    lcd.setCursor(0, 1);
    lcd.print(key);
    }
    }

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.