Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 48
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Применение емкостных Touch кнопок на arduino.

    Данное устройство было сделано мной и испытано на Arduino . Сенсор был спрятан под пластиковой пластиной толщиной 1,5мм и срабатывал при прикосновении в 100% случаев. Срабатывание проиходит для наглядноси на 13 пин Carduino, на котором висит светодиод, при необходимости можно поставить ключь на транзисторе и повесить на него реле(для управления мощными нагрузками) . Принцип данного девайса основан на измерении емкости человека.
    Нажмите на изображение для увеличения. 

Название:	CapSense.gif 
Просмотров:	9061 
Размер:	5.6 Кб 
ID:	5469

    Нашел готовую библиотеку на сайте разработчика Arduino .
    Сопротивление можно использовать от 1мОм до 10мОм , чем больше сопротивление тем больше чувствительность датчика.
    Датчиком я сделал из фольгированого текстолита размером 25х25 мм
    При срабатывании сенсора будет загоратся светодиод (L)

    Схема подключения :
    Нажмите на изображение для увеличения. 

Название:	CapacitorSensor.PNG 
Просмотров:	3167 
Размер:	7.6 Кб 
ID:	5467

    Без библиотеки CapSense ниже приведеный код компилироватся не будет.
    Библиотеку устанавливаем в папку arduino-0017\hardware\libraries\CapSense

    Код для Arduino Nano, Arduino Maga, UNO:
    PHP код:
    #include <CapSense.h>       // подключить библиотеку

    CapSense   Sensor1 CapSense(4,2); // назначить пины для сенсора
    void setup()                     

       
    Serial.begin(115200);   // настроить скорость порта


    void loop()                     

        
    long temp1 =  Sensor1.capSense(30); // измерить емкость и сохранить в temp1
        
    delay(300);                       //пауза

        
    if (temp1 60)    // изменяя значение 60 мы регулируем чуствительность сенсора 
        
    digitalWrite(13HIGH);   }    // включить светодиод 
      
    else { digitalWrite(13LOW); } // выключить светодиод]
      
        
    Serial.println(temp1);  // для клибровки вашего датчика 
                                // или для использования этого значения в компьютере

    При просмотре видео обратите внимание на зеленый светодиод слева.
    Вложения Вложения
    Последний раз редактировалось Chip; 19.03.2017 в 02:54.

  2. #2
    Продвинутый
    Регистрация
    31.08.2007
    Сообщений
    398
    Вес репутации
    316

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    начинаю ваять сенсорные кнопки.
    вопросы:
    1. влияет-ли размер сенсора на что-нибудь
    2. какой длинны может быть провод от сенсора до Carduino
    3. куда цеплять остальные сенсоры.
    4. как arduino будет различать какой "нажат"
    5. Можно ли использовать программку для работы сенсорных кнопок из этой темы http://www.compcar.ru/forum/showthread.php?t=4640
    6. можно схемку ключа на транзисторе
    Спасибо
    З.Ы. понимаю, что вопросы могут быть тупыми, но я очень слабо разбираюсь в электронике
    Последний раз редактировалось Chip; 19.03.2017 в 02:55.
    Мой проект http://compcar.ru/forum/showthread.p...highlight=audi
    Grand Cheeroke ZJ пока в процессе

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    1- влияет , чем больше тем чувствительней.
    2- не тестил на длину
    3- 1 кнопка 1 цифровой вход, можно матричный принцип использовать
    4- ответ выше
    5- могу переделать эту программу под сенсорные кнопки.

    Четвертый цифровой пин Carduino общий для всех кнопок
    CapSense cs_4_2 = CapSense(4,2);
    CapSense cs_4_5 = CapSense(4,5);
    CapSense cs_4_8 = CapSense(4,8);
    Последний раз редактировалось Chip; 24.09.2009 в 23:54.

  4. #4
    Продвинутый
    Регистрация
    31.08.2007
    Сообщений
    398
    Вес репутации
    316

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    да, програмку было бы неплохо.
    а можно схемку ключа на транзисторе.
    Мой проект http://compcar.ru/forum/showthread.p...highlight=audi
    Grand Cheeroke ZJ пока в процессе

  5. #5
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    Ключи бывают разными
    Вот такой сойдет?
    Изображения Изображения  
    Последний раз редактировалось Chip; 25.09.2009 в 00:16.

  6. #6
    Продвинутый
    Регистрация
    31.08.2007
    Сообщений
    398
    Вес репутации
    316

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    т.е. схемка подключения сенсоров будет такая?
    все сопротивления по 4.7 мОм?
    Изображения Изображения  
    Мой проект http://compcar.ru/forum/showthread.p...highlight=audi
    Grand Cheeroke ZJ пока в процессе

  7. #7
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    Все верно , можно хоть на все порты кнопки повесить
    Сопротивления можно и разные это скажется на чувствительности кнопки, чем больше сопротивление тем чувствительней кнопка, предел 10 мОм
    Общим может также служить любой цифровой пин Carduino
    В приведеном ниже примере, общий является 2-ой пин Arduino
    PHP код:
    CapSense   Sensor1 CapSense(2,3); 
    Последний раз редактировалось Chip; 25.09.2009 в 00:33.

  8. #8
    Продвинутый
    Регистрация
    31.08.2007
    Сообщений
    398
    Вес репутации
    316

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    наверно сойдет. какой диод туда?
    Мой проект http://compcar.ru/forum/showthread.p...highlight=audi
    Grand Cheeroke ZJ пока в процессе

  9. #9
    Продвинутый
    Регистрация
    31.08.2007
    Сообщений
    398
    Вес репутации
    316

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    спасибо, буду ждать программку
    Мой проект http://compcar.ru/forum/showthread.p...highlight=audi
    Grand Cheeroke ZJ пока в процессе

  10. #10
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    Выкладываю исходный код емкотных кнопок для Arduino, который будет работать с программой HKey
    Внимание если у вас резисторы стоят на одной или двух кнопках, то остальные кнопки в коде нужно закоментировать, иначе программа корректно работать не будет. Или придется использовать все семь кнопок которые прописаны в коде.
    Если кому потребуется большее число кнопок то вы можете добавлять сами вплоть до 13-го цифрового порта, думаю как это сделать понятно по коду

    PHP код:
    #include <CapSense.h>       // подключить библиотеку
    byte bytes[2] = {00};
    CapSense   Sensor1 CapSense(2,3); // назначить пины для сенсора
    CapSense   Sensor2 CapSense(2,4); // назначить пины для сенсора
    CapSense   Sensor3 CapSense(2,5); // назначить пины для сенсора
    CapSense   Sensor4 CapSense(2,6); // назначить пины для сенсора
    CapSense   Sensor5 CapSense(2,7); // назначить пины для сенсора
    CapSense   Sensor6 CapSense(2,8); // назначить пины для сенсора
    CapSense   Sensor7 CapSense(2,9); // назначить пины для сенсора

    void setup()                     

      
    // Sensor1.set_CS_AutocaL_Millis(0xFFFFFFFF); //отключить автокалибровку
      // Sensor1.set_CS_Timeout_Millis(999999);    //время таймаута
       
    Serial.begin(115200);   // настроить скорость порта


    void loop()                     

      
    byte sens_on 0
         
    long temp1 =  Sensor1.capSense(30); // измерить емкость и сохранить 
         
    long temp2 =  Sensor2.capSense(30); // измерить емкость и сохранить
         
    long temp3 =  Sensor3.capSense(30); // измерить емкость и сохранить
         
    long temp4 =  Sensor4.capSense(30); // измерить емкость и сохранить
         
    long temp5 =  Sensor5.capSense(30); // измерить емкость и сохранить
         
    long temp6 =  Sensor6.capSense(30); // измерить емкость и сохранить
         
    long temp7 =  Sensor7.capSense(30); // измерить емкость и сохранить     

        
    if (temp1 60) { sens_on 10;   }  
           if (
    temp2 60) { sens_on 20;   } 
              if (
    temp3 60) { sens_on 30;   } 
                 if (
    temp4 60) { sens_on 40;   }  
                  if (
    temp5 60) { sens_on 50;   } 
                  if (
    temp6 60) { sens_on 60;   } 
                  if (
    temp7 60) { sens_on 70;   }  
      
    bytes[0] = sens_on ;  
        
    Serial.writebytes2); 
        
    delay(100); //Пауза между повторными нажатиями

    Последний раз редактировалось Chip; 28.09.2009 в 16:04.

Страница 1 из 5 12345 ПоследняяПоследняя

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

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

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

Ваши права

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