نمایش نتایج: از 1 به 4 از 4
Like Tree1 لایک
  • 1 Post By magmagmary

موضوع: کمک برای ساخت keyless starter خودرو

  1. #1
    Junior Member
    تاریخ عضویت
    Nov 2016
    نوشته ها
    2

    Question کمک برای ساخت keyless starter خودرو

    سلام به همه دوستان. پروژه از این قراره که با استفاده از arduino uno و ماژول رله ۴ کانال و یک کلید فشاری یک کیت استارتر خودرو ساخته بشه .
    به اینصورت که پس از باز کردن دزدگیر خودرو یک پالس به آردینو فرستاده میشه برای فعال سازی . پس از اون اگه کلید فشرده بشه ماشین در وضعیت ACC یا همون روشن شدن ضبط قرار میگیره . پس از فشردن مجدد همون کلید ماشین در وضعیت IGN یا پله قبل از استارت قرار میگیره. و اگر پدال ترمز را گرفته و کید را فشار دهیم ماشین روشن میشود و اگر کلید را بدونه ترمز گفتن فشار دهیم ماشین خاموش میشود.
    کد:
    // set pin numbers:
    const int buttonPin = 2;    // the number of the pushbutton pin
    const int ledPin = 3;      // the number of the LED pin
    // Variables will change:
    int ledState = HIGH;         // the current state of the output pin
    int buttonState;             // the current reading from the input pin
    int lastButtonState = LOW;   // the previous reading from the input pin
    
    
    unsigned long lastDebounceTime = 0;  // the last time the output pin was toggled
    unsigned long debounceDelay = 50;    // the debounce time; increase if the output flickers
    
    void setup() {
      pinMode(buttonPin, INPUT);
      pinMode(ledPin, OUTPUT);
    
      // set initial LED state
      digitalWrite(ledPin, ledState);
    }
    
    void loop() {
      // read the state of the switch into a local variable:
      int reading = digitalRead(buttonPin);
      // check to see if you just pressed the button
      // (i.e. the input went from LOW to HIGH),  and you've waited
      // long enough since the last press to ignore any noise:
    
      // If the switch changed, due to noise or pressing:
      if (reading != lastButtonState) {
        // reset the debouncing timer
        lastDebounceTime = millis();
      }
    
      if ((millis() - lastDebounceTime) > debounceDelay) {
        // whatever the reading is at, it's been there for longer
        // than the debounce delay, so take it as the actual current state:
    
        // if the button state has changed:
        if (reading != buttonState) {
          buttonState = reading;
    
          // only toggle the LED if the new button state is HIGH
          if (buttonState == HIGH) {
            ledState = !ledState;
          }
        }
      }
    
      // set the LED:
      digitalWrite(ledPin, ledState);
    
      // save the reading.  Next time through the loop,
      // it'll be the lastButtonState:
      lastButtonState = reading;
    }
    void loop1() {
      // read the state of the switch into a local variable:
      int reading = digitalRead(buttonPin);
    
      // check to see if you just pressed the button
      // (i.e. the input went from LOW to HIGH),  and you've waited
      // long enough since the last press to ignore any noise:
    
      // If the switch changed, due to noise or pressing:
      if (reading != lastButtonState) {
        // reset the debouncing timer
        lastDebounceTime = millis();
      }
    
      if ((millis() - lastDebounceTime) > debounceDelay) {
        // whatever the reading is at, it's been there for longer
        // than the debounce delay, so take it as the actual current state:
    
        // if the button state has changed:
        if (reading != buttonState) {
          buttonState = reading;
    
          // only toggle the LED if the new button state is HIGH
          if (buttonState == HIGH) {
            ledState = !ledState;
          }
        }
      }
    
      // set the LED:
      digitalWrite(ledPin, ledState);
    
      // save the reading.  Next time through the loop,
      // it'll be the lastButtonState:
      lastButtonState = reading;
    }
    این کد برای کلید و یک رله هست . سوال من اینجاست که چطور میشه توی برنامه تعریف کرد که بعد از زدن مجدد کلید و وضعیت بعدی برود؟
    و اینکه امکان این هست که به برنامه lcd هم اظافه کرد که وضعیت روشن بودن خودرو را در کنار دمای آب و دمای هوا وضعیت باز یا بسته بودن درب ها نشان داد یا باید از یک بورد دیگر در کنار این بورد استفاده کرد؟
    ویرایش توسط spyder : 11-18-2016 در ساعت 09:13 PM

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,933
    سلام
    معلومه که میشه .
    اینا هم همش داستانی کد نویسیه .
    کافیه وقت بزاری و با کد کلنجار بری .

    در مورد کلید هم میتونی ه کانتر بزاری . هر بار که کلید مورد نظرت فشار داده شد یه دونه به این کانتر اضافه کنی و هر بار هم چک کنی شماره کانتر دو شده یا نه .

    یه نمونه کدش این شکلی میشه .
    این ور تو هدر میزاری :
    کد:
        int counter=0;
    بعد این تابع رو استفاده می کنی.
    کد:
    void keyAction (){
      if(reading != lastButtonState){
       counter++;
        if(counter==2) // do Action
        }
     
    }
    لایک کردن

  3. #3
    Junior Member
    تاریخ عضویت
    Nov 2016
    نوشته ها
    2
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    سلام
    معلومه که میشه .
    اینا هم همش داستانی کد نویسیه .
    کافیه وقت بزاری و با کد کلنجار بری .

    در مورد کلید هم میتونی ه کانتر بزاری . هر بار که کلید مورد نظرت فشار داده شد یه دونه به این کانتر اضافه کنی و هر بار هم چک کنی شماره کانتر دو شده یا نه .

    یه نمونه کدش این شکلی میشه .
    این ور تو هدر میزاری :
    کد:
        int counter=0;
    بعد این تابع رو استفاده می کنی.
    کد:
    void keyAction (){
      if(reading != lastButtonState){
       counter++;
        if(counter==2) // do Action
        }
     
    }
    سلام دوست عزیز . این کد کاربردی هست ولی برای ریست کردن کانتر به صفر برای شروع مجدد و یا رفتن کانتر از مرحله ۴ برای مثال به ۲ چگونه باید عمل کرد؟

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,933
    نقل قول نوشته اصلی توسط spyder نمایش پست ها
    سلام دوست عزیز . این کد کاربردی هست ولی برای ریست کردن کانتر به صفر برای شروع مجدد و یا رفتن کانتر از مرحله ۴ برای مثال به ۲ چگونه باید عمل کرد؟
    کدش به این صورت میشه :
    کد:
    void keyAction (){
      if(reading != lastButtonState){
       counter++;
        if(counter==2){
          counter=0;
          }
        }
     
    }

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO