Показано с 1 по 10 из 52

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь
    Регистрация
    05.08.2010
    Возраст
    41
    Сообщений
    68
    Вес репутации
    201

    По умолчанию Re: Блок управления body ( На подобии системы авто Управление кузовом автомобиля) ФО

    Предложение использовать протокол ИК пульта от телевизоров сони
    А вот и скетч Для отправляющей
    PHP код:
    /*
     * IR LED must be connected to Arduino PWM pin 3.
     */

    #include <IRremote.h>
    int button 12;
    int button2 11;
    IRsend irsend;
    int val;
    void setup()
    {
      
    pinMode(buttonINPUT);
      
    pinMode(button2INPUT);
    }

    void loop() {
     
    val digitalRead(button); 
    if (
    val == 0) {
          
    irsend.sendSony(0xa9012);} // Sony TV power code
          
    delay(10);
      
    val digitalRead(button2); 
    if (
    val == 0) {
          
    irsend.sendSony(0xa7012);} // Sony TV power code
          
    delay(10);
      

    Библиотека для работы с протоколом СОНИ в комплекте
    Для Принимающей Ардуины
    PHP код:
    /*
     The circuit:
     * LCD RS pin to digital pin 9
     * LCD Enable pin to digital pin 7
     * LCD R/W pin to digital pin 8
     * LCD D4 pin to digital pin 5
     * LCD D5 pin to digital pin 4
     * LCD D6 pin to digital pin 3
     * LCD D7 pin to digital pin 2
     * 10K resistor GND: to pin 3 LCD
     * LCD 1 & 16 to ground 
     * LCD 2 & 15 +5V 
     * wiper to LCD VO pin (pin 3)
     * ir_pin = 6
    */
    int ir_pin 6;                                //"Ready to Recieve" flag, not needed but nice             //Serial connection must be started to debug
    int start_bit 2000;            //Start bit threshold (Microseconds)
    int bin_1 1000;
    int debug 0;                    //Binary 1 threshold (Microseconds)
    int bin_0 400;                 //Binary 0 threshold (Microseconds)
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(9875432);
    const 
    int numRows 2
    const 
    int numCols 16;

    void setup() {        
      
    pinMode(ir_pinINPUT);
     
    lcd.begin(numRowsnumCols);
      
    lcd.setCursor(00);
      
    lcd.print("Rem Demo v.2.0");
      
    delay(3000);
       
    lcd.setCursor(00);
        
    lcd.print(":-)             ");
    }

    void loop() {

      
    int key getIRKey();            //Fetch the key
     
    lcd.setCursor(01);
      
    lcd.print("Key set:");
      
    lcd.print(key);
      
    lcd.print("                ");
     
    }


    int getIRKey() {
      
    int data[12];
             
    //Ok, i'm ready to recieve
      
    while(pulseIn(ir_pinLOW) < 2200) { //Wait for a start bit
      
    }
      
    data[0] = pulseIn(ir_pinLOW);    //Start measuring bits, I only want low pulses
      
    data[1] = pulseIn(ir_pinLOW);
      
    data[2] = pulseIn(ir_pinLOW);
      
    data[3] = pulseIn(ir_pinLOW);
      
    data[4] = pulseIn(ir_pinLOW);
      
    data[5] = pulseIn(ir_pinLOW);
      
    data[6] = pulseIn(ir_pinLOW);
      
    data[7] = pulseIn(ir_pinLOW);
      
    data[8] = pulseIn(ir_pinLOW);
      
    data[9] = pulseIn(ir_pinLOW);
      
    data[10] = pulseIn(ir_pinLOW);
      
    data[11] = pulseIn(ir_pinLOW);

     if(
    debug == 1) {
        
    lcd.setCursor(01);
        
    lcd.println("-----");
      }
      for(
    int i=0;i<11;i++) {          //Parse them
        
    if (debug == 1) {
          
    lcd.println(data[i]);
        }
        if(
    data[i] > bin_1) {          //is it a 1?
        
    data[i] = 1;
        }  else {
        if(
    data[i] > bin_0) {        //is it a 0?
          
    data[i] = 0;
        } else {
         
    data[i] = 2;              //Flag the data as invalid; I don't know what it is!
        
    }
        }
      }

      for(
    int i=0;i<11;i++) {          //Pre-check data for errors
        
    if(data[i] > 1) {
        return -
    1;                 //Return -1 on invalid data
        
    }
      }

      
    int result 0;
      
    int seed 1;
      for(
    int i=0;i<11;i++) {          //Convert bits to integer
        
    if(data[i] == 1) {
        
    result += seed;
        }
        
    seed seed 2;
      }
      return 
    result;                 //Return key number

    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	DC100909019.jpg 
Просмотров:	493 
Размер:	126.8 Кб 
ID:	9704   Нажмите на изображение для увеличения. 

Название:	DC100909022.jpg 
Просмотров:	514 
Размер:	146.7 Кб 
ID:	9705  
    Вложения Вложения
    Последний раз редактировалось xeonlink; 10.09.2010 в 11:27.

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

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

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

Ваши права

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