閲覧総計:18179  (本日:1  昨日:1)


無線送信機

無線送信機を設計、製作しました。
2つのスイッチを用意し、左右のモータを独立に前進・後進
制御する事で、ラジコンカーを自由に操縦出来る様に考えました。
06/11/03

/** 
* 無線データ送信(車の操縦)
* 
* PIC 16F628A 
* 発信器:内臓4MHz 
* 電源:乾電池3本(4.5V) 
* switch: RA0,RA1,RA2,RA3 
* LED: RB6 
*  
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON 
*   _WDT_OFF _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT 
* 
* 言語 MikroC v2.1 
*/ 
void main() { //メインプログラム 
 PORTA = 0b00000000; //PORTAの中身をきれいにする 
 PORTB = 0b00000000; //PORTBの中身をきれいにする 

 CMCON = 0b00000111; //PORTAをデジタル入出力使用に設定 

 TRISA = 0b00000001; //RA0を1:入力に、他を0:出力に設定 
 TRISB = 0b00000010; //PORTB RB1:入力、他7ヶは出力設定 

 Usart_Init(2400); //通信速度を2400 band rateに設定 

 do { //doとwhileの間を繰り返す 
  if(PORTA.F0 == 1) { //右前進 
   if(PORTA.F1 == 1) { //左前進 
    Usart_Write('A'); //A:左右前進を送信 
   } else { 
    if(PORTA.F3 == 1) { //左後進 
     Usart_Write('B'); //B:左後進、右前進を送信 
    } else { 
     Usart_Write('C'); //C:右前進を送信 
    } 
   } 
  } else { //右前進off 
   if(PORTA.F1 == 1) { //左前進 
    if(PORTA.F2 == 1) { //右後進 
     Usart_Write('D'); //D:左前進、右後進を送信 
    } else { 
     Usart_Write('E'); //E:左前進を送信 
    } 
   } else { 
    if(PORTA.F2 == 1) { //右後進 
     if(PORTA.F3 == 1) { //左後進 
      Usart_Write('F'); //F:左後進、右後進を送信 
     } else { 
      Usart_Write('G'); //G:右後進を送信 
     } 
    } else { //右後進off 
     if(PORTA.F3 == 1) { //左後進 

      Usart_Write('H'); //H:左後進を送信
     } else {

      Usart_Write(0); //ストップ(off) 

     }

     } 
   } 
  } 
  Delay_ms(10); //10ミリ秒待つ 
  PORTB.F6 = ~PORTA.F0; //発光ダイオード点滅 
 } while(1); //doとwhileの間を繰り返す 
} //メイン終わり