Страница 5 из 16 ПерваяПервая 123456789101115 ... ПоследняяПоследняя
Показано с 41 по 50 из 152
  1. #41
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    25
    Вес репутации
    140

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    По схеме, так подключить?
    Нажмите на изображение для увеличения. 

Название:	схема Arduina.jpg 
Просмотров:	3600 
Размер:	58.5 Кб 
ID:	17478

  2. #42
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    34
    Вес репутации
    141

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    ясно ну можно тогда зажигание и старт а асс кинуть на вкл магнитолы и прикуривателя как вариант

  3. #43
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    25
    Вес репутации
    140

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    мне на АСС нужны прикуриватель(хотя я не курю), магнитолу и стеклоподьемники. А схему я правильно на рисовал??

  4. #44
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    34
    Вес репутации
    141

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    да правильно,есть вариант заводить только после кодового ввода я фото выкидывал ,тоже интересная штука будет.Стекло подъемники можно одним проводом к асс подключить там в модуле прям по центру в самом верхнем ряду идет реле, отрезать провод который идет на 86 ногу в штатной проводке и подключить к выходу асс и все .Вопрос еще ты кнопку нашел?
    Последний раз редактировалось maestro777; 09.01.2014 в 21:43.

  5. #45
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    218

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    а можно более детальную схему подключения&в частности к самой arduino
    Последний раз редактировалось Beard; 09.01.2014 в 23:45.

  6. #46
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    34
    Вес репутации
    141

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    А что же тут может быть подробнее,все выходы расписаны в скетче .Что не понятно спроси ответим .
    Последний раз редактировалось maestro777; 10.01.2014 в 02:25.

  7. #47
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    25
    Вес репутации
    140

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    Это оптимальный вариант
    http://www.a-pik.ru/catalog/moduli_s...e_start_knopka

    Можно еще на eBay посмотреть
    http://www.ebay.com/sch/i.html?_saca...&_skc=50&rt=nc

  8. #48
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    25
    Вес репутации
    140

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    Цитата Сообщение от Beard Посмотреть сообщение
    а можно более детальную схему подключения&в частности к самой arduino
    PHP код:
    byte ACCPin 11//Выход на транзистор переферии ACC 
    byte EnginePin 10//Выход на транзистор зажигания 
    byte StarterPin 9//Выход на транзистор стартера 
    byte ButtonPin 8//Вход + с кнопки <----------------------------- Стягивающий резистор на "-" 
    byte StopPin 12//Вход с тормоза <----------------------------- Стягивающий резистор на "-" 
    byte ImmoPin 7//Вход с иммо <----------------------------- Подтягивающий резистор на "+" 
    byte TahoPin 6//Вход с тахометра <----------------------------- Стягивающий резистор на "-" 
    11 контакт на МК arduino - выход на режим АСС
    10 контакт - выход на зажигание
    9 контакт - выход на стартер
    8 контакт - вход с кнопки
    12 контакт - вход с тормозов

    и тогдалее

  9. #49
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    34
    Вес репутации
    141

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    Привет вот еще есть классный вариант кнопки http://www.svetodiod96.ru/ishop/knop...-stop_498.html

  10. #50
    Пользователь
    Регистрация
    05.01.2014
    Сообщений
    34
    Вес репутации
    141

    По умолчанию Re: Кнопка Старт/Стоп на МК Arduino

    Ребята если кто скачал прогу извините я там в коде ошибку допустил которая мешает экстренному отключению программы по нажатию кнопки вот исправленный код :
    PHP код:
    byte ACCPin 11//Выход на транзистор переферии ACC
    byte EnginePin 10//Выход на транзистор зажигания
    byte StarterPin 9//Выход на транзистор стартера
    byte ButtonPin 8//Вход + с кнопки <----------------------------- Стягивающий резистор на "-"
    byte StopPin 12//Вход с тормоза <----------------------------- Стягивающий резистор на "-"
    byte ImmoPin 7//Вход с иммо <----------------------------- Подтягивающий резистор на "+"
    byte TahoPin 6//Вход с тахометра <----------------------------- Стягивающий резистор на "-"
    byte WordsPin 5//Выход на глазок 1 
    byte YellowGlazokPin 4//Выход на глазок 2 
    byte GreenGlazokPin 3//Выход на глазок 3
    byte statusEngine 0;
    byte sw 2;
    //byte rotate = 0;
    unsigned int rotate=0;
    boolean stateACC false;
    unsigned long lastPress 0;
    unsigned long lastImmo 0;
    unsigned long splitTime 0;
    unsigned long time =0;
    byte stat 0;
    void setup()
    {
    pinMode(sw,INPUT);
    pinMode(EnginePinOUTPUT);
    pinMode(StarterPinOUTPUT);
    pinMode(ACCPinOUTPUT);
    pinMode(WordsPinOUTPUT);
    pinMode(YellowGlazokPinOUTPUT);
    pinMode(GreenGlazokPinOUTPUT);
    //time = 0;
    lastImmo=millis();
    lastPress=millis();
    Serial.begin(9600);
    Serial.println("Arduino is started");
    }

    // 0 - Все выключенно
    // 1 - Включено только зажигание
    // 2 - Крутиться стартер, ждем оборотов
    // 3 - Двигатель работает, все включено
    // 4 - Неудачная попытка запуска, включено только зажигание
    // 5 - Двигатель заглушен, АСС пока еще работает
    void loop()
    {
    if (
    stat != statusEngine) {stat statusEngine;
    Serial.println(stat);
    }
    unsigned long newTime millis() - lastPress;
    unsigned int button pressButton();
    if (
    button != 0Serial.println(button);
    lastImmoTest();
    switch (
    statusEngine
    {
    case 
    0:
    digitalWrite(GreenGlazokPinLOW);
    if (
    stateACCdigitalWrite(YellowGlazokPinHIGH); 
    else 
    digitalWrite(YellowGlazokPinLOW);
    if (
    millis() - lastImmo 10000digitalWrite(WordsPinHIGH); 
    else 
    digitalWrite(WordsPinLOW);
    if (
    button == 1500 && stateACC)
    {
    StopAll();
    }
    else if (
    button == 1500 && !stateACCStartACC();
    else if (
    button != && millis() - lastImmo 2000 && newTime 500) {
    StartEngine();
    statusEngine=1;
    }
    break;
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- 
    case 1:
    if (
    digitalRead(ImmoPin) == LOWStopAll();
    digitalWrite(WordsPinHIGH); 
    if (
    stateACCdigitalWrite(YellowGlazokPinHIGH); else digitalWrite(YellowGlazokPinLOW);
    if (
    millis() - lastImmo 2000 && StopIsPress() && newTime 900
    {
    digitalWrite(GreenGlazokPinHIGH); 
    digitalWrite(WordsPinHIGH);
    }
     else
    {
    digitalWrite(GreenGlazokPin,!digitalRead(GreenGlazokPin));
    delay(100);
    }
     
    if (
    button == 1500) {
    StopAll();
    }
    else if (
    button != && newTime 500) {
    if (!
    stateACC
    StopAll();
    else
    {
    StopEngine();
     
    statusEngine=5;
     }
     }
     else if (
    newTime 9000 && newTime 9100 && StopIsPress())//задержка на 9 секунд тут она не мешает основному циклу если нужна другая просто меняйте 
     
     
    {
     
     
    StartStarter();
     
    statusEngine=2;
     }
     break;
     
     
     
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
     
    case 2:
     
    digitalWrite(WordsPinHIGH); 
     
    digitalWrite(GreenGlazokPinHIGH); 
     if (
    stateACCdigitalWrite(YellowGlazokPinHIGH);
     if (
    digitalRead(TahoPin) == HIGH) {
     
    rotate++;
     while (
    digitalRead(TahoPin) == HIGH) if (digitalRead(ImmoPin) == LOW) {StopAll(); break;}
     }
     if (
    rotate>=2
     {
     
    unsigned int rpm = (rotate*60000*10000/2)/(micros()-splitTime);
     
    Serial.print("rpm: ");
     
    Serial.println(rpm);
     
    rotate=0;
     
    splitTime=micros();
     if (
    rpm>1000) { //<-------ВЕРНУТЬ СЮДА ТЫЩУ!!!! <-------
     
    StopStarter();
     
    StartACC();
     
    statusEngine=3;
     
    Serial.println("Engine is WORK!!");
     break;
     }
     }
     if (
    button != && newTime 500) { 
     
    StopAll();
     }
     else if (
    newTime 5000 || !StopIsPress()){
     
    StopStarter();
     
    statusEngine=4;
     }
     break;
     
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
     
    case 3:
     
    digitalWrite(GreenGlazokPinHIGH);
     
    digitalWrite(YellowGlazokPinLOW);
     if (
    newTime 5000digitalWrite(WordsPinLOW); 
     else 
    digitalWrite(WordsPinHIGH);
     if (
    button == 1500) {
     
    StopAll();
     }
     else if (
    button != && newTime 500) { 
     
    StopEngine();
     
    statusEngine=5;
     }
     break;
     
     
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
     
     
    case 4:
     
     
    digitalWrite(WordsPinHIGH);
     
    digitalWrite(GreenGlazokPin, !digitalRead(GreenGlazokPin)); delay(50);
     
    digitalWrite(YellowGlazokPinLOW);
     if (
    button == 1500 || newTime 10000) {
     
    StopAll();
     }
     else if (
    button != && newTime 500 && StopIsPress()) {
     
    StartStarter();
     
    statusEngine=2;
     }
     else if (
    button != && newTime 500 && !StopIsPress()) {
     
    StopAll();
     }
     break;
     
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
     
    case 5:
     
    digitalWrite(GreenGlazokPinLOW);
     if (
    stateACCdigitalWrite(YellowGlazokPinHIGH); else digitalWrite(YellowGlazokPinLOW);
     if (
    newTime 5000
     {
     if (
    millis() - lastImmo 5000digitalWrite(WordsPinHIGH); else digitalWrite(WordsPinLOW);
     }
     else 
     
    digitalWrite(WordsPinHIGH);
     if (
    button == 1500) {
     
    StopAll();
     }
     else if (
    millis() - lastImmo 2000StopAll();
     else if (
    button != && newTime 500) {
     
    StartEngine();
     
    statusEngine=1;
     }
     
    lastImmoTest();
     break;
     
    //----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
     
    }
     }

    void StartEngine(){
    digitalWrite(EnginePinHIGH);
    Serial.println("Engine is ON");
    lastPress=millis();
     }
     
    void StopEngine(){
     
    digitalWrite(EnginePinLOW);
     
    Serial.println("Engine is OFF");
     
    lastPress=millis();
     }
     
    void StopAll(){
     
    digitalWrite(EnginePinLOW);
     
    digitalWrite(StarterPinLOW);
     
    digitalWrite(ACCPinLOW);
     
    Serial.println("All OFF"); 
     while (!
    digitalRead(ButtonPin)){}
     
    stateACC=false;
     
    lastPress=millis();
     
    statusEngine=0;
     
    lastPress=millis(); 
     }
     
     
    void StartStarter(){
     
    digitalWrite(StarterPinHIGH);
     
    Serial.println("Starter START!");
     
    splitTime=micros();
     
    lastPress=millis();
     }
     
    void StopStarter(){
     
    digitalWrite(StarterPinLOW);
     
    Serial.println("Starter if OFF!");
     
    lastPress=millis();
     }
     
     
    void StartACC(){
     
    digitalWrite(ACCPinHIGH);
     
    Serial.println("Starter ACC!");
     
    stateACC=true;
     
    lastPress=millis();
     }
     
    void lastImmoTest(){
     if (
    digitalRead(ImmoPin) == LOW) { //<----------------------------- Поменял на LOW
     
    lastImmo=millis();
     
    Serial.println("Immo+");
     }
     }
     
     
    unsigned int pressButton(){
     
    unsigned long newTime millis();
     
    boolean currentPosition digitalRead(ButtonPin);
     if (
    currentPosition == HIGH){ 
     
    delay(50);
     
    currentPosition=digitalRead(ButtonPin); 
     }
     while (!
    currentPosition) {
     
    currentPosition=digitalRead(ButtonPin);
     if (
    millis() - newTime 1000) return 1500;
     }
     
    newTime=millis() - newTime;
     if (
    newTime 60newTime 0;
     return 
    newTime
     }
     
    boolean StopIsPress(){
     return 
    digitalRead(StopPin); 
     } 

Страница 5 из 16 ПерваяПервая 123456789101115 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •