跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 开源分享
  4. 循迹小车

循迹小车

已定时 已固定 已锁定 已移动 开源分享
1 帖子 1 发布者 377 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • leoraiiionL 离线
    leoraiiionL 离线
    leoraiiion
    写于 最后由 编辑
    #1
    [链接文本]([链接文本](``````
    #include "stm32f10x.h"                  // Device header
    #include "Delay.h"
    #include "LED.h"
    #include "PWM.h"
    #include "AD.h"
    #include "OLED.h"
    //uint8_t i;
    uint16_t AD0, AD1, AD2, AD3, AD4;
    int main(void)
    {
         int a=0;
    	  OLED_Init();
          AD_Init();
    	  LED_Init();
    	  PWM_Init();
    	
    		LED1_ON();
    	    LED1_OFF();
    	OLED_ShowString(1, 1, "AD4:");
    	OLED_ShowString(2, 1, "AD1:");
    	OLED_ShowString(3, 1, "AD2:");
    	OLED_ShowString(4, 1, "AD3:");
        OLED_ShowString(1, 9, "D0:");
    	OLED_ShowString(2, 9, "a:");
    		while (1)
    	{
    		AD0 = AD_GetValue(ADC_Channel_2);//YOU2
    		AD1 = AD_GetValue(ADC_Channel_3);//YOU1
    		AD2 = AD_GetValue(ADC_Channel_4);//ZHONG
    		AD3 = AD_GetValue(ADC_Channel_5);//ZUO1
    		AD4 = AD_GetValue(ADC_Channel_6);//ZUO2
    		
    			if(AD2<1000)//直走
    	{
    	     TIM_SetCompare1(TIM2, 80);  //YOULUN
    	     TIM_SetCompare2(TIM2, 80);//ZUOLUN
    	}
    	
    	else if(AD1<1000)//右转
    	{
    	     TIM_SetCompare1(TIM2, 10);  
    	     TIM_SetCompare2(TIM2, 100);
    	}
    	else if(AD3<1000 ) //左转
    		{
    	     TIM_SetCompare1(TIM2, 100);  
    	     TIM_SetCompare2(TIM2, 10 );
    	}
    
    	else 
    	{
    		 TIM_SetCompare1(TIM2,0);
    	     TIM_SetCompare2(TIM2, 0 );
    	}
    //		 if(AD4<1000) //左转DA
    //		{
    //	     TIM_SetCompare1(TIM2, 90);  
    //	     TIM_SetCompare2(TIM2, 10 );
    //	}
    	
         if(AD4<1000 && AD2<1000 && a==0)      //zuozhuanxiaoquan
    	{
    		  a=1;
    		  TIM_SetCompare1(TIM2,50);
    	      TIM_SetCompare2(TIM2, 0 );
    		  Delay_ms(500);
    	}	
    	 if(AD1<1000 && AD2<1000 &&AD3<1000 && a==1)      //zuozhuanxiaoquan
    	{
    		  a=2;
    		  TIM_SetCompare1(TIM2,50);
    	      TIM_SetCompare2(TIM2, 0 );
    		  Delay_ms(500);
    	}	
    
    		else  if(AD2<1000 && AD1<1000 && AD3<1000&& a==2)
    	{
    			a=3;
    		Buzzer_ON();
    	    Delay_ms (600);
            Buzzer_OFF();
    		Delay_ms (100);
    		Buzzer_ON();
    		Delay_ms (100);
    		Buzzer_OFF();
    		Delay_ms (100);
    		Buzzer_ON();
    		Delay_ms (100);
    		Buzzer_OFF(); 	
    	}
    		
    	if(a==3 && AD2<1000 && AD1<1000 && AD3<1000)
    	{
    	     TIM_SetCompare1(TIM2, 0);  
    	     TIM_SetCompare2(TIM2, 0 );
    		 Delay_ms (3000);
             TIM_SetCompare1(TIM2, 0);  
    	     TIM_SetCompare2(TIM2, 0 );
    	}
            OLED_ShowNum(1, 5, AD4, 4);
    		OLED_ShowNum(2, 5, AD1, 4);
    		OLED_ShowNum(3, 5, AD2, 4);
    		OLED_ShowNum(4, 5, AD3, 4);
    		OLED_ShowNum(1, 10, AD0, 4);
    		OLED_ShowNum(2, 10, a, 4);
    }
    		
    	
    }
    
    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门