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

Тема: Arduino FM Radio.

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

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

    По умолчанию Arduino FM Radio.

    Предлагаю сделать радио на Arduino UNO https://duino.ru/arduino-uno-ch340g.html
    Пока вот подрисовал схему
    Если еще кто нибудь печатку нарисует, то дело быстрей пойдет
    Нажмите на изображение для увеличения. 

Название:	fm3.png 
Просмотров:	11593 
Размер:	6.7 Кб 
ID:	7729
    Софт, плагин и исходник для CF прикреплены ниже

    Скетч для Arduino v.7
    Автор Hamster
    PHP код:
    // Порты для LM
    #define CE (12) //LM7001 PIN3
    #define CL (11) //LM7001 PIN4
    #define DA (10) //LM7001 PIN5
    // Задержка на тактах, в микросекундах
    #define LM_DELAY (2)

    void setup()      
    {     
    Serial.begin(9600);
    pinMode(CEOUTPUT);
    pinMode(CLOUTPUT);
    pinMode(DAOUTPUT);
    // Да будет радио сразу!
    //SetRF(1017);
    }      

    void loop()      
    {   
    int inRF;
    byte p[2];
    int t;

    ReadSteering();

    // Длина команды 8 байт, формат:
    // rfXXXXX<cr>
    Serial.available();
    if (
    >= 8)
      {
        
    p[0] = Serial.read();
        
    p[1] = Serial.read();
        if ( 
    p[0]==114 and p[1]==102 )
        {
          
    inRF 1;
          for (
    int x=3x>=0x--)
            {
              
    inRF += (int(Serial.read())-48) * pow(10x);
            }
          
    Serial.flush();  
          if (
    inRF >= 875 and inRF <= 1080)  {SetRF(inRF); SendOK();}
          else {
    SendERR();}   
        }
        else {
    SendERR();}
      }
      else 
      {
      if (
    0) {Serial.flush(); SendOK();}
      }
      
    delay(100);


    // Читает рулевые кнопки и пишет в порт код нажатой кнопки

    void ReadSteering()      
    {   
      
    byte bytes[2];  
      
    unsigned int res_dt1 analogRead(0); // прочитать данные АЦП  
      
    delay(50); 
      
    unsigned int res_dt2 analogRead(0); //проверка дребезга  
        
    if (abs(res_dt1-res_dt2)<=20 and res_dt1<1000 //если нет дребезга и что-то есть
          

            
    bytes[0] = 255;
            
    bytes[1] = res_dt1 255;          // преобразовать в 2-байта  
            
    bytes[2] = (res_dt1 768) >> 8;  
            
    Serial.writebytes,3); // отправить прочитаное значение компьютеру      
          
    }   
    /*Serial.print(res_dt1,DEC);
    Serial.print("   ");
    Serial.println(res_dt2,DEC);*/


    void SetRF(int RF)
    {
      
    RF += 107;
      
    // Выставляем CE, говорим что пишем в LM
      
    digitalWrite(CEHIGH);
      
    writeToLM(byte(RF));
      
    writeToLM(byte(RF >> 8));
      
    writeToLM(135);
      
    // Снимаем CE, все отправили
      
    digitalWrite(CELOW);
    }

    void writeToLM(byte ByteToSend)
    {
    int D
    int D1;

      
    delayMicroseconds(LM_DELAY);
      for (
    int x=0x<=7x++)
        {
          
    // Выставляем DA
          
    ByteToSend >> 1;
          
    D1 << 1;
          if (
    ByteToSend==D1)  // Значит был 0
            
    {
              
    digitalWrite(DA,LOW);
            }
          else
            {
              
    digitalWrite(DA,HIGH);         
            }  
          
    // Формируем строб CL  
          
    digitalWrite(CLHIGH);
          
    delayMicroseconds(LM_DELAY);
          
    digitalWrite(CL,LOW);
          
    delayMicroseconds(LM_DELAY);  
          
    ByteToSend ByteToSend >> 1;    
        }
      
    delayMicroseconds(LM_DELAY);
    }

    void SendOK()
    {
      
    Serial.println("OK");
    }

    void SendERR()
    {
      
    Serial.println("ER");

    Вложения Вложения
    Последний раз редактировалось Chip; 19.03.2017 в 03:06.

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

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

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

Ваши права

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