2019电赛 A题 无线充电循迹小车 可参考方案 (软件篇)

在这里记录一下我四天的小小成果,也可供大家参考(能力有限,大佬勿喷)

应题目要求,充电桩部分主控板选用 MSP430expf5529 单片机,功耗较低,好操作

#include "msp430f5529.h"
#include"I2C_OLED.H"
#include"zimo.h"
#define CPU_F ((double)1000000)
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))  //定义宏,延时
void GO0(void) //oled显示 “准备充电”
{
    I2C_OLED_Init();
    OLED_P16x16Ch(26,3,32);
    OLED_P16x16Ch(46,3,33);
    OLED_P16x16Ch(66,3,34);
    OLED_P16x16Ch(86,3,35);
}
void GO1(void) //oled显示  “充电完成”
{
    I2C_OLED_Init();
    OLED_P16x16Ch(26,3,34);
    OLED_P16x16Ch(46,3,35);
    OLED_P16x16Ch(66,3,36);
    OLED_P16x16Ch(86,3,37);
}
void OFF(void)     //继电器全断
{

    P2OUT&=~BIT3;
    P2OUT&=~BIT6;
    P8OUT&=~BIT1;
    P8OUT&=~BIT2;
}
void ONB(void)     //继电器开b
{

    P2OUT|=BIT3;
    P2OUT&=~BIT6;
    P8OUT&=~BIT1;
    P8OUT&=~BIT2;
}
void ONA(void)      //继电器开a
{

    P2OUT&=~BIT3;
    P2OUT|=BIT6;
    P8OUT&=~BIT1;
    P8OUT&=~BIT2;
}
void ONC(void)       //继电器开c
{

    P2OUT&=~BIT3;
    P2OUT&=~BIT6;
    P8OUT|=BIT1;
    P8OUT&=~BIT2;
}
void OND(void)       //继电器开d
{

    P2OUT&=~BIT3;
    P2OUT&=~BIT6;
    P8OUT&=~BIT1;
    P8OUT|=BIT2;
}

int main(void)
{
    WDTCTL = WDTPW+WDTHOLD;                 //关闭看门狗
    P2DIR|=(BIT0+BIT3+BIT6+BIT5+BIT7);      //定义引脚为输出方向
    P8DIR|=(BIT1+BIT2);
    P1DIR|=BIT6;
    P2OUT|=BIT7;                            //定义引脚为高电平输出
    P1OUT|=BIT6;
    int a;
    a=60;
    OLED_CLC();                             //oled清屏
    GO0();

    OFF();
   while(P2IN & BIT4);                      //启动开关被触发
  {
       P1OUT&=~BIT6;                      / /蜂鸣器模块响一下
       delay_ms(100);
       P1OUT|=BIT6;
       OLED_CLC();
       ONB();
      for (a; a>=0; a--)                    //60s倒计时 同时oled显示时间
   {
       show_Num(55,3,a,2,30);
       delay_ms(1000);
   }
       OFF();
       P1OUT&=~BIT6;
       delay_ms(100);
       P1OUT|=BIT6;
       OLED_CLC();
       GO1();
  }
       while (1)
       {

             if(P3IN & BIT7);     //五个霍尔传感器的检测程序,当有信号时,打开相应的继电器
                 else{
                  ONA();
                 }
              if(P1IN & BIT3);
                 else{
                  ONB();
                     }
              if(P7IN & BIT4 );
                else{
                  ONC();
                     }
             if(P1IN & BIT4);
                  else{
                  ONC();
                      }
             if(P1IN & BIT5);
                  else{
                  OND();
                      }

          }


}

实现功能:屏幕倒计时显示,60s断电,发射线圈保证单一供电,A-B停,移动充电
引脚使用说明
四路继电器,数字输出信号脚(P2.3\P2.6\P8.1\P8.2)
OLED iic信号脚(P4.1\P4.2)
五个霍尔模块,数字输入信号脚(P3.7\P1.3\P1.4\P1.5\P7.4)
蜂鸣器低电平触发模块,数字输出信号脚(P1.6)
光电开关(用于启动整体程序)(P2.4)

程序流程图

2019电赛 A题 无线充电循迹小车 可参考方案 (软件篇)_第1张图片

充电桩整体原理图
2019电赛 A题 无线充电循迹小车 可参考方案 (软件篇)_第2张图片

总结:
本充电桩方案可解决本题各项基本要求(不包括测距离题)使用简单,成型快,喜欢的小伙伴可以用于参考…

你可能感兴趣的:(比赛总结)