本设计:
基于STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)
原理图:Altium Designer
程序编译器:keil 5
编程语言:C语言
编号C0021
下载链接: 链接:https://pan.baidu.com/s/1J0c2uh5Q6k2zPYFhoKgzXw?pwd=jrqx 提取码:jrqx
功能描述:
1.以STM32F103RBT6为主控芯片,实现对小车的控制,使小车能够做出前进、后退、左转、右转等基本行驶动作,通过红外遥控控制小车工作模式的转换(自由行走避障模式、跟随模式)
2.利用压力传感器测重,放在小车上物品的重量在500g范围以内,可以跟随,如果超过范围,就停止不动,蜂鸣器响提示超重。
原理图(提供源文件):
PCB(提供源文件):
源程序(提供源文件):
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "timer.h" #include "adc.h" #include "remote.h" #include "hx711.h" #includeu8 Model=0; //ģʽ u8 PWM_WIDTH=28; u8 RunModel=0; void Hw_Process() { u8 key; key=Remote_Scan(); if(key) { Beep=1; delay_ms(100); //ÑÓʱ300ms Beep=0; printf("rnºìÍâ¼üÖµ= %drn",key); } if(key==224)// - :½øÈë ×ÔÓÉÒ£¿Ø±ÜÕÏģʽ { RunModel=0; } else if(key==168)// - :½øÈë ¸úËæÄ£Ê½ { RunModel=1; } if(RunModel==0) //×ÔÓÉÒ£¿Ø±ÜÕÏģʽ£¬Ò£¿Ø¿ØÖÆ { if(key==194)// ÔÝÍ£ >|| { Model=0; printf("rnÍ£Ö¹rn");// } else if(key==34)//|<< { Model=4; delay_ms(500); //ÑÓʱ300ms Model=1; printf("rn×órn");// } else if(key==2) //>>| { Model=3; delay_ms(500); //ÑÓʱ300ms Model=1; printf("rnÓÒrn");// } else if(key==162) //CH- { Model=1; printf("rnǰ½ørn");// } else if(key==98) //CH { Model=2; printf("rnºóÍËrn");// } else if(key==48) // °´Ï¼ü1 { PWM_WIDTH=40; printf("rn1µµrn");// } else if(key==24) // °´Ï¼ü2 { PWM_WIDTH=35; printf("rn2µµrn");// } else if(key==122) // °´Ï¼ü3 { PWM_WIDTH=28; printf("rn3µµrn");// } } } int main(void) { u16 adcx; unsigned long adtemp,adtemp1; u16 Weight=0; u16 temp1,temp2; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú uart_init(9600); //uart2_init(9600); TIM3_Int_Init(10,5199);//10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½10Ϊ1ms ¿ØÖÆÐ¡³µ·½Ïò¼°ËÙ¶È CH_SR04_Init();//³¬Éù²¨ÉèÖóõʼ»¯ Remote_Init(); //ºìÍâ½ÓÊÕ³õʼ»¯ //ADInit(); Beep=1; delay_ms(100); //ÑÓʱ300ms Beep=0; delay_ms(100); //ÑÓʱ300ms Beep=1; delay_ms(100); //ÑÓʱ300ms Beep=0; printf("rn-----------------------------------------------rn");// adtemp=HX711_Read(); //ÏȶÁÈ¡Æ¤ÖØ¶ÔÓ¦µÄAD¡£×¢Ò⣺Éϵçǰ ³ÆÖØÅÌÉϲ»ÄÜ·ÅÈκÎÎïÆ·£¬ÒÔÃâÔì³É²âÁ¿²»×¼¡£ Model=0; while(1) { Hw_Process();//ºìÍâÒ£¿Ø´¦Àí if(RunModel==0) //×ÔÓÉÒ£¿Ø±ÜÕÏģʽ£¬Ò£¿Ø¿ØÖÆ +³¬Éù²¨±ÜÕÏ { temp1=Senor_Using_Left()*10; printf("rn×ó·½¾àÀë= %d cm",temp1);//´®¿Ú´òÓ¡³öµçѹÐÅÏ¢ temp2=Senor_Using_Right()*10; printf("ÓÒ·½¾àÀë= %d cmrn",temp2);//´®¿Ú´òÓ¡³öµçѹÐÅÏ¢ if((temp1<250||temp2<250)&&Model==1)//ǰ·½Õϰ̫½ü£¬ÐèÒª±ÜÕÏ { Model=0; delay_ms(300); //ÑÓʱ300ms Model=2;//ºóÍË delay_ms(300); //ÑÓʱ300ms Model=4;//ÓÒת delay_ms(300); //ÑÓʱ300ms Model=1;//ǰ½ø } } else if(RunModel==1) //½øÈë×Ô¶¯¸úËæÄ£Ê½ { adtemp1=HX711_Read(); if(adtemp1>adtemp) //Åжϼì²âµ½AD´óÓÚÆ¤ÖØÊ±£¬ÈÏΪÓÐÎïÌå·ÅÖᣠ{ Weight=(adtemp1-adtemp)*0.002388; //¸ù¾Ý´®¿Úµ÷ÊÔ¸ÃϵÊý¼ÆËã¹ý³ÌΪ£º200g ¡Â£¨8494856£¨·ÅÖÃ200gÎïÌå¶ÔÓ¦AdÖµ£©-8411097£¨ÎÞÎïÌå·ÅÖÃʱÊä³öADÖµ£©£© printf("rn ÖØÁ¿=%d grn",Weight); } if(Weight>500)//Èç¹ûÖØÎï´óÓÚ 500g ·äÃùÆ÷±¨¾¯¡£²»¸úËæ { Beep=1; delay_ms(300); //ÑÓʱ300ms Beep=0; delay_ms(300); //ÑÓʱ300ms } else { temp1=Senor_Using_Left()*10; printf("rn×ó·½¾àÀë= %d cm",temp1);//´®¿Ú´òÓ¡³öµçѹÐÅÏ¢ temp2=Senor_Using_Right()*10; printf("ÓÒ·½¾àÀë= %d cmrn",temp2);//´®¿Ú´òÓ¡³öµçѹÐÅÏ¢ if((temp1<200)||(temp2<200)) // 200= 20cm ×óÓÒÓÐÒ»·½Ð¡ÓÚ20cm { Model=0;//Í£Ö¹ } else if((temp1>1000)&&(temp2>1000)) { printf("rnÍ£Ö¹rn"); Model=0;// } else if((temp1<1000)&&(temp2<1000)) { printf("rnǰ½ørn"); Model=1;// delay_ms(300); //ÑÓʱ300ms if(temp1>temp2) //˵Ã÷´Ëʱ С³µ³µÍ·Ïà¶ÔÈËÆ«×ó£¬Ó¦ÈÃС³µÏòÓÒ¹ÕÍä { Model=3;//ÓÒת printf("rnÓÒתrn"); delay_ms(200); //ÑÓʱ300ms // } else if(temp2>temp1)//˵Ã÷´Ëʱ С³µ³µÍ·Ïà¶ÔÈËÆ«ÓÒ£¬Ó¦ÈÃС³µÏò×ó¹ÕÍä { Model=4;//×óת printf("rn×óתrn"); delay_ms(200); //ÑÓʱ300ms } } Model=0;// } } } }
论文报告:
资料清单如下:



