我想让arduino用uln2003a驱动板,驱动四个直流电机(在我想要的方式下,具体方式可以看程序),但是我只成功的让电机转起来过一次,然后就不动了。一开始以为电机烧了,测试了一下电机发现没有问题,所以现在不解中。。。请各位老师指导。。。(我用的直流电机就是小时候玩四驱车的那种,130扁型)
上面包版图
javascript:;
程序(只实现了两个电机控制)- int _ABVAR_2_V1;
- int _ABVAR_1_L1;
- void setup()
- {
- pinMode( 8 , OUTPUT);
- Serial.begin(9600);
- _ABVAR_2_V1 = 0;
- _ABVAR_1_L1 = 0;
- pinMode( 9 , OUTPUT);
- }
- void loop()
- {
- _ABVAR_1_L1 = analogRead(A0) ;
- Serial.print( "the intense of light:" );
- Serial.print( _ABVAR_1_L1 );
- Serial.println("");
- _ABVAR_2_V1 = analogRead(A1) ;
- Serial.print( "the V1's R:" );
- Serial.print( _ABVAR_2_V1 );
- Serial.println("");
- if (( ( ( ( _ABVAR_2_V1 ) >= ( 225.75 ) ) && ( ( _ABVAR_2_V1 ) < ( 511.5 ) ) ) && ( ( _ABVAR_1_L1 ) <= ( 280 ) ) ))
- {
- digitalWrite( 8 , HIGH );
- delay( 1000 );
- digitalWrite( 8 , LOW );
- delay( 1500 );
- digitalWrite( 9 , HIGH );
- delay( 1000 );
- digitalWrite( 9 , LOW );
- delay( 1000 );
- if (( ( ( _ABVAR_1_L1 ) <= ( 300 ) ) || ( ( _ABVAR_2_V1 ) < ( 225.75 ) ) ))
- {
- digitalWrite( 8 , LOW );
- digitalWrite( 9 , LOW );
- delay( 1000 );
- }
- }
- else
- {
- digitalWrite( 8 , LOW );
- digitalWrite( 9 , LOW );
- delay( 1000 );
- }
- if (( ( ( ( _ABVAR_2_V1 ) >= ( 737.25 ) ) && ( ( _ABVAR_2_V1 ) < ( 963 ) ) ) && ( ( _ABVAR_1_L1 ) <= ( 280 ) ) ))
- {
- digitalWrite( 8 , HIGH );
- digitalWrite( 8 , LOW );
- delay( 1000 );
- }
- if (( ( ( ( _ABVAR_2_V1 ) >= ( 963 ) ) && ( ( _ABVAR_1_L1 ) <= ( 1023 ) ) ) && ( ( _ABVAR_1_L1 ) <= ( 280 ) ) ))
- {
- digitalWrite( 9 , HIGH );
- digitalWrite( 9 , LOW );
- delay( 1000 );
- }
- }
复制代码 还有直观一点的ardublock图
javascript:;
javascript:;
javascript:;
实际接线图像
javascript:;
javascript:;
这里就是我最怀疑出错的地方,因为这是驱动板所以我不知道接的是否正确。。。 |