اطلاعیه

Collapse
No announcement yet.

آموزش Arduino + برنامه چهاردهم (HC- 05)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #46
    پاسخ : آموزش Arduino +برنامه Key-pad بدون استفاده از کتابخانه

    نوشته اصلی توسط hassantorabi
    سلام
    توی یکی از سایت های خارجی کد جالبی برای راه اندازی Key-pad بدون استفاده از کتابخانه نوشته بودند . من که خیلی لذت بردم . حیفم اومد اینجا نذارم . کد نویسی روان ، جالب و قابل فهمی هستش . به نظرم برای کسانی که دوست دارن کد نویسیشون قوی بشه جالب باشه .تصویر زیر مدار رو نشون میده که باید Key-pad به اینصورت بسته بشه


    اینم کد
    [code=c]/*
    Keypad sketch
    prints the key pressed on a keypad to the serial port
    */
    const int numRows = 4; // number of rows in the keypad
    const int numCols = 3; // number of columns
    const int debounceTime = 20; // number of milliseconds for switch to be stable
    // keymap defines the character returned when the corresponding key is pressed
    const char keymap[numRows][numCols] = {
    { '1', '2', '3' } ,
    { '4', '5', '6' } ,
    { '7', '8', '9' } ,
    { '*', '0', '#' }
    };
    // this array determines the pins used for rows and columns
    const int rowPins[numRows] = { 7, 2, 3, 6 }; // Rows 0 through 3
    const int colPins[numCols] = { 5, 8, 4 }; // Columns 0 through 2
    void setup()
    {
    Serial.begin(9600);
    for (int row = 0; row < numRows; row++)
    {
    pinMode(rowPins[row],INPUT); // Set row pins as input
    digitalWrite(rowPins[row],HIGH); // turn on Pull-ups
    }
    for (int column = 0; column < numCols; column++)
    {
    pinMode(colPins[column],OUTPUT); // Set column pins as outputs
    // for writing
    digitalWrite(colPins[column],HIGH); // Make all columns inactive
    }
    }
    void loop()
    {
    char key = getKey();
    if( key != 0) { // if the character is not 0 then
    // it's a valid key press
    Serial.print("Got key "
    Serial.println(key);
    }
    }
    // returns with the key pressed, or 0 if no key is pressed
    char getKey()
    {
    char key = 0; // 0 indicates no key pressed
    for(int column = 0; column < numCols; column++)
    {
    digitalWrite(colPins[column],LOW); // Activate the current column.
    for(int row = 0; row < numRows; row++) // Scan all rows for
    // a key press.
    {
    if(digitalRead(rowPins[row]) == LOW) // Is a key pressed?
    {
    delay(debounceTime); // debounce
    while(digitalRead(rowPins[row]) == LOW)
    ; // wait for key to be released
    key = keymap[row][column]; // Remember which key
    // was pressed.
    }
    }
    digitalWrite(colPins[column],HIGH); // De-activate the current column.
    }
    return key; // returns the key pressed or 0 if none
    }[/code]
    من یه سوال در مورد kepad دارم! اونم اینه که kepad های 16 کلیده 8 خروجی دارند که مربوط به ردیف و ستون هست! از کجا اینارو به زمین وصل کنیم تا مقدار ثانویه شون Low بشه و دستورات اجرا بشن؟

    دیدگاه


      #47
      پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

      لطفا اگر بخواهیم جای کلید یک شاسی بگذاریم یعنی وقتی شاسی را فشار دهیم ال ای دی روشن شود ودست را از روی شاسی برداشتیم باز ال ای دی روشن باشد وبا یک شاسی دوم ال ای دی را خاموش کنیم برنامه ان را توضیح دهید

      دیدگاه


        #48
        پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

        const int buttonPin1 = 2;
        const int buttonPin2 = 3;
        const int ledPin = 13;

        int buttonState1 = 0;
        int buttonState2 = 0;
        void setup() {

        pinMode(ledPin, OUTPUT);
        pinMode(buttonPin1, INPUT);
        pinMode(buttonPin2, INPUT);
        }

        void loop() {

        buttonState1= digitalRead(buttonPin1);
        if (buttonState1 == HIGH) {
        digitalWrite(ledPin, HIGH);
        }
        buttonState2 = digitalRead(buttonPin2);
        if (buttonState2 == HIGH) {
        digitalWrite(ledPin, LOW);
        }

        }
        با سلام من این برنامه را کار کردم جواب نمی دهد

        دیدگاه


          #49
          پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

          درود
          مدارتون رو هم باید بذارید ، برنامه مشکلی نداره .آیا از مقاومت های Pull-Up (external) هم استفاده کردید ؟ امتحان کردم مشکلی نداشت .
          چشم ها را باید شست ، جور دیگر باید دید . . .

          دیدگاه


            #50
            پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

            نوشته اصلی توسط ahk1346
            const int buttonPin1 = 2;
            const int buttonPin2 = 3;
            const int ledPin = 13;

            int buttonState1 = 0;
            int buttonState2 = 0;
            void setup() {

            pinMode(ledPin, OUTPUT);
            pinMode(buttonPin1, INPUT);
            pinMode(buttonPin2, INPUT);
            }

            void loop() {

            buttonState1= digitalRead(buttonPin1);
            if (buttonState1 == HIGH) {
            digitalWrite(ledPin, HIGH);
            }
            buttonState2 = digitalRead(buttonPin2);
            if (buttonState2 == HIGH) {
            digitalWrite(ledPin, LOW);
            }

            }
            با سلام من این برنامه را کار کردم جواب نمی دهد
            لطفا برای خوانایی بهتر و بیشتر کد را در تگ کد قرار دهید.
            [code=c]
            const int buttonPin1 = 2;
            const int buttonPin2 = 3;
            const int ledPin = 13;

            int buttonState1 = 0;
            int buttonState2 = 0;
            void setup() {

            pinMode(ledPin, OUTPUT);
            pinMode(buttonPin1, INPUT);
            pinMode(buttonPin2, INPUT);
            }

            void loop() {

            buttonState1= digitalRead(buttonPin1);
            if (buttonState1 == HIGH) {
            digitalWrite(ledPin, HIGH);
            }
            buttonState2 = digitalRead(buttonPin2);
            if (buttonState2 == HIGH) {
            digitalWrite(ledPin, LOW);
            }

            }

            [/code]
            STM32 واقعا یه چیز دیگه است...

            دیدگاه


              #51
              پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

              نوشته اصلی توسط hassantorabi نمایش پست ها
              اضافه شده در تاریخ :
              چون قراره که برنامه ها رو توی پروتئوس هم شبیه سازی کنیم بهتره دوستان کتابخانه Arduino رو از لینک زیر دانلود و نصب کنند .
              http://freeupload.ir/gucbfjgty08s/Pr...brary.rar.html
              سلام دوست عزیز خیلی ممنون از توضیحات خوبتون منتها متاسفانه لینک دانلودی که برای کتابخانه ی آردوئینو در پروتئوس گذاشتید کار نمیکنه،
              با اجازه تون من یه لینک دیگه اینجا قرار می دم که همراه با توضیحات برای اضافه کردن کتابخانه هم هست.
              arduiny.com هل هو أول وأفضل مصادر جميع المعلومات التي تبحث عنها. من ضوء الموضوعات العامة إلى مزيد من الموضوعات التي كنت لتتوقعها هنا، arduiny.com تمتلكها جميعًا. نأمل أن تجد ما تبحث عنه!

              در ضمن به نظرتون برای شروع کدوم نوع آردوئینو مناسب تره؟
              من گشتم انواع مختلفی دیدم منتها کدومشون بیشتر به کارای تحقیقاتی و آموزشی میخوره رو نمیدونم.. ممنون میشم راهنمایی کنید

              دیدگاه


                #52
                پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

                درود بر شما و تشکر بابت قرار دادن لینک جدید برای کتابخانه آردوینو . مرسوم ترین برد آردوینو UNO هستش که هم قیمت ارزونی داره هم قابلیت های خوبی
                چشم ها را باید شست ، جور دیگر باید دید . . .

                دیدگاه


                  #53
                  پاسخ : آموزش Arduino + برنامه چهاردهم (HC- 05)

                  سلام.
                  در بین بردهای آردوینو مدل UNO خیلی کار راه اندازه، کلی کار میشه باهاش انجام داد، قیمتشم مناسبه. من که خیلی باهاش حال می کنم...
                  یه سایت هم هست که مقایسه بین مدل های مختلف رو آورده و توضیحات خوبی هم داره. لینکش رو می فرستم. شاید به دردتون بخوره...



                  ضمنا از توضیحات خوبتون ممنونم جناب ترابی...


                  جدیدترین ویرایش توسط alirezabc; ۱۴:۰۲ ۱۳۹۵/۰۴/۲۳.

                  دیدگاه

                  لطفا صبر کنید...
                  X