写一个三个传感器双驱动的循迹小车程序(arduino) Arduino循迹小车反应速度太慢
arduino \u4e09\u8def\u5faa\u8ff9\u5c0f\u8f66\u7a0b\u5e8f\u600e\u4e48\u7b80\u5355\u7684\u7a0b\u5e8f\u8fd8\u8981\u95ee\uff1f\uff1f\u6211\u53ef\u4ee5\u6559\u4f60ARDUINO\u3002
\u697c\u4e3b\u8fd9\u6d3b\u6211\u4e5f\u73a9\u8fc7\u3002
1\u3001\u5bf9\u4e8e\u4f20\u611f\u5668\u4e0d\u542c\u8bdd\uff0c\u5f88\u5927\u53ef\u80fd\u662f\u4f60\u7684\u68c0\u6d4b\u9608\u503c\u8bbe\u7f6e\u5f97\u4e0d\u662f\u5f88\u597d\u3002
2\u3001\u4e00\u822c\u6765\u8bf4\u4f60\u7684\u4f20\u611f\u5668\u4e2a\u6570\u5e94\u8be5\u6bd4\u8f83\u591a\uff0c\u53ef\u80fd6~10\u4e2a\u5427\uff0c\u5982\u6b64\u591a\u7684\u4fe1\u53f7\u4e0d\u5e94\u8be5\u90fd\u8fdb\u5165\u4e2d\u65ad\uff0c\u518d\u8bf4\u5355\u7247\u673a\u4e5f\u6ca1\u90a3\u4e48\u591a\u5916\u90e8\u4e2d\u65ad\u53ef\u7ed9\u4f60\u7528\uff0c\u5efa\u8bae\u6240\u6709\u4fe1\u53f7\u52a0\u6216\u95e8\u8fdb\u5165\u5916\u90e8\u4e2d\u65ad\uff08\u53ef\u5206\u4e3a\u5de6\u8fb9\u4e00\u7ec4\uff0c\u53f3\u8fb9\u4e00\u7ec4\uff0c\u4e24\u4e2a\u4e2d\u65ad\uff09\u3002\u5426\u5219\u5728\u4e3b\u51fd\u6570\uff08\u66f4\u597d\u7684\u662f\uff0c\u5b9a\u65f6\u5668\uff09\u5224\u65ad\uff0c\u8fd9\u4e2a\u4fe1\u53f7\u6700\u597d\u8fde\u63a5\u5230\u540c\u4e00\u4e2a\u7aef\u53e3\u4e0a\uff0c\u5982P0\u7aef\u53e3\uff0c\u901a\u8fc7\u4f4d\u5224\u65ad\u5f53\u524d\u4fe1\u53f7\u503c\u3002
3\u3001L298N\u529f\u7387\u82af\u7247\uff0c\u5982\u679c\u8981\u8c03\u901f\u4e14\u662f\u76f4\u6d41\u7535\u673a\uff0c\u4e00\u822c\u662f\u5bf9\u5176\u63a7\u5236\u4f7f\u80fd\u811a\u65bd\u52a0\u5360\u7a7a\u6bd4\u53d8\u5316\u7684\u4fe1\u53f7\uff0c\u4ee5\u8fbe\u5230\u4e0d\u540c\u7684\u9a71\u52a8\u6548\u679c\u3002\u5982\u679c\u662f\u6b65\u8fdb\u7535\u673a\uff0c\u5219\u63a7\u5236\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\uff0c\u8bf7\u67e5\u9605\u76f8\u5e94\u6587\u732e\u3002
1、对于传感器不听话,很大可能是你的检测阈值设置得不是很好。
2、一般来说你的传感器个数应该比较多,可能6~10个吧,如此多的信号不应该都进入中断,再说单片机也没那么多外部中断可给你用,建议所有信号加或门进入外部中断(可分为左边一组,右边一组,两个中断)。否则在主函数(更好的是,定时器)判断,这个信号最好连接到同一个端口上,如P0端口,通过位判断当前信号值。
3、L298N功率芯片,如果要调速且是直流电机,一般是对其控制使能脚施加占空比变化的信号,以达到不同的驱动效果。如果是步进电机,则控制方式有所不同,请查阅相应文献。
绛旓細1銆佸浜庝紶鎰熷櫒涓嶅惉璇濓紝寰堝ぇ鍙兘鏄綘鐨勬娴嬮槇鍊艰缃緱涓嶆槸寰堝ソ銆2銆佷竴鑸潵璇翠綘鐨勪紶鎰熷櫒涓暟搴旇姣旇緝澶氾紝鍙兘6~10涓惂锛屽姝ゅ鐨勪俊鍙蜂笉搴旇閮借繘鍏ヤ腑鏂紝鍐嶈鍗曠墖鏈轰篃娌¢偅涔堝澶栭儴涓柇鍙粰浣犵敤锛屽缓璁墍鏈変俊鍙峰姞鎴栭棬杩涘叆澶栭儴涓柇锛堝彲鍒嗕负宸﹁竟涓缁勶紝鍙宠竟涓缁勶紝涓や釜涓柇锛夈傚惁鍒欏湪涓诲嚱鏁帮紙鏇村ソ鐨勬槸锛屽畾鏃跺櫒...
绛旓細define SPEED1 50 uchar ito=0;uchar m=0;uchar time=0;uchar PWM1=0;uchar PWM2=0;sbit p=P2^0; //鎺у埗宸﹁疆 sbit q=P2^1; //鎺у埗鍙宠疆 sbit p_green=P2^2;sbit p_red=P2^3;sbit TCRD1=P2^4;//姝ゅ鏄浼犳劅鍣RPR220绠¤剼浣嶅0鏄 sbit TCRD2=P2^5;sbit TCRD3=P2^6;sbit TCRD4...
绛旓細1銆佸惊杩瑰皬杞︽槸涓绉嶈兘澶熻嚜宸卞鎵捐建杩瑰苟鎸夎建杩硅繍鍔ㄧ殑鈥滄櫤鑳解濊溅銆傛湰鏂囩畝瑕佽褰曡繖涓鐢靛瓙鍒朵綔杩囩▼锛屽笇鏈涘ぇ瀹跺枩娆傛湁浠涔堝缓璁拰鎰忚锛屾杩庡ぇ瀹剁暀瑷銆2銆佹牴鎹厓鍣ㄤ欢娓呭崟娓呯偣鍣ㄤ欢锛岀湅鏄惁缂轰欢灏戜欢銆備笅鍥炬槸鍏冨櫒浠跺叏瀹剁锛3銆佷緷娆$剨鎺ュ厓鍣ㄤ欢锛氳鍏堢剨鎺ュ皬鐨勫厓鍣ㄤ欢锛屽啀鐒婃帴澶х殑鍏冨櫒浠讹紝鏈鍚庣矘涓婄數姹犲骇鍜岄┈杈俱傜剨鎺ュソ...
绛旓細sbit M2B=P0^3; //瀹氫箟鍙充晶鐢垫満椹卞姩B绔 sbit B1=P0^4; //瀹氫箟璇煶璇嗚瘑鍒浼犳劅鍣绔彛 sbit SB1=P0^6; //瀹氫箟铚傞福鍣ㄧ鍙 define RunShow P1 //瀹氫箟鏁版嵁鏄剧ず绔彛 void Delay() //瀹氫箟鏈哄櫒浜鸿皟杞瓙鏃堕棿瀛愮▼搴 { unsigned int DelayTime=50000; //瀹氫箟鏈哄櫒浜鸿浆寮椂闂村彉閲 while...
绛旓細灏忚溅鍏锋湁鑷富瀵昏抗鐨勫姛鑳姐傛湰娆¤璁℃垜浠噰鐢⊿TC89C52鍗曠墖鏈轰綔涓烘帶鍒惰姱鐗囷紝浼犳劅鍣妯″潡閲囩敤绾㈠鍏夌數瀵圭鍜屾瘮杈冨櫒瀹炵幇锛岃兘澶熻瘑鍒粦鐧戒袱鑹茶矾闈紝鐢垫満妯″潡鐢盠293D鑺墖鍜屼袱涓噺閫熺洿娴佺數鏈烘瀯鎴愶紝缁勬垚浜嗘櫤鑳借溅鐨勫姩鍔涚郴缁燂紝鐢垫簮閲囩敤7.2V鐨勭洿娴佺數姹狅紝缁忚繃绯荤粺缁勮锛屼粠鑰屽疄鐜颁簡灏忚溅鐨勮嚜鍔寰抗鐨勫姛鑳姐 ...
绛旓細鏈鏈夊彲鑳界殑鏄浼犳劅鍣ㄧ殑缁撴瀯,闄ゅ幓杞欢绠楁硶涓婄殑闂涓嶈,宸﹀彸鎵彲鑳芥槸浣犵殑绾㈠浼犳劅鍣ㄩ棿璺濇瘮杈冨ぇ,閫犳垚鍋忕璺嚎杈冨ぇ鏃舵墠鑳芥娴嬪埌,浠庤屾樉寰楁壄鍔ㄨ緝澶с 鎷愪笉杩囨潵寮彲鑳芥槸鍥犱负浣犵殑浼犳劅鍣ㄥ彧鏄敤鐨勭畝鍗曠殑宸﹀彸鍚勪竴涓孩澶栫,涓鏃﹁溅閫熻繃蹇,娌℃潵鐨勫強璋冭妭,浣垮皬杞︾殑浼犳劅鍣ㄨ秴鍑轰簡寰抗绾,灏卞啀涔熸棤娉曡皟鏁磋繃鏉ヤ簡銆 瀵逛簬鎷愪笉杩囨潵寮殑鎯...
绛旓細3涓绾㈠瀵圭鎴戞病鏈夊仛杩囥傚彧鍋氳繃8涓孩澶栧绠$殑銆備互涓嬫槸8涓孩澶栫鐨勭▼搴 void track() //寰抗妯″潡 { if(P0==0&&IK==1) //鍒拌揪榛戠嚎锛屽嵆鍋滄宸$嚎锛岀瓑寰呭钩鏉垮彂鍑烘寚浠 { shache(); delay30ms();} else { if(P0==0XE7|P0==0XF7|P0==0XEF)//1銆佷腑闂4銆5浼犳劅鍣妫娴嬪埌榛戠嚎锛屽叏閫...
绛旓細鐢靛姩寰抗灏忚溅璁捐1. 灏忚溅鎺у埗鍙椹卞姩鍗曞厓鐨勯夋嫨 姝ら儴鍒嗘槸鏁翠釜灏忚溅鐨勫ぇ鑴,鏄暣涓皬杞﹁繍琛岀殑鏍稿績閮ㄤ欢,璧风潃鎺у埗灏忚溅鎵鏈夎繍琛岀姸鎬佺殑浣滅敤銆傞氬父閫夌敤鍗曠墖鏈轰綔涓哄皬杞︾殑鏍稿績鎺у埗鍗曞厓,鍦ㄨ繖閲岀敤鍙版咕鍑岄槼鍏徃鐨凷PCE061A鍗曠墖鏈烘潵鍋氬皬杞︾殑鎺у埗鍗曞厓銆係PCE061鏄竴娆炬嫢鏈2K RAM銆32KFlash銆32 涓狪/O 鍙,骞堕泦鎴愪簡AD/DA鍔熻兘寮哄ぇ鐨16浣嶅井...
绛旓細3鐢垫満椹卞姩绯荤粺銆4 寰抗浼犳劅鍣 涓嬮潰涓涓杩涜浠嬬粛銆1杞︽ā銆傚浜庢柊鎵嬫潵璇翠綘闇瑕佷竴涓溅妯★紝褰撶劧涔熷彲浠ヨ嚜宸卞埗浣滀竴涓ā鍨嬶紝涓嬮潰杩欎釜鏄袱涓數鏈虹殑鏅鸿兘灏忚溅銆備笂闈㈣繖涓溅妯″寘鍚湁锛1涓溅妯″簳鏉匡紝2涓噺閫熺數鏈猴紝2涓疆瀛愶紝1涓竾鍚戣疆锛堜笂闈㈠浘鐗囷紝鐢垫睜鐩掍笅闈㈤偅涓級锛1涓數姹犵洅銆傝繖绉嶈溅妯″緢澶氬湴鏂归兘鏈夛紝浣犲彧瑕佹寜鐓ц鏄庝功...
绛旓細涓嶇敤鐪嬩簡锛岃嚜宸辨鏌ユ牸寮忥紝姣忎釜begin瀵瑰簲涓涓狤ND case 瀵瑰簲涓涓猠ndcase 閫愪竴妫鏌ヤ綘灏辩煡閬撻敊鍦ㄥ摢浜嗐備唬鐮佷範鎯笉濂介犳垚鐨勩