test 4D7S + HC-SR04 + NUCLEO-F103RB
Dependencies: ArduinoFB SRF05 mbed
main.cpp@0:fac6c6a73e5f, 2015-02-12 (annotated)
- Committer:
- fblanc
- Date:
- Thu Feb 12 10:26:36 2015 +0000
- Revision:
- 0:fac6c6a73e5f
- Child:
- 1:0f0f31f25bbd
ok sfr04+4D7S
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fblanc | 0:fac6c6a73e5f | 1 | |
fblanc | 0:fac6c6a73e5f | 2 | #include "SRF05.h" |
fblanc | 0:fac6c6a73e5f | 3 | #include "Arduino.h" |
fblanc | 0:fac6c6a73e5f | 4 | |
fblanc | 0:fac6c6a73e5f | 5 | SRF05 srf(D6, D5);//trig;echo |
fblanc | 0:fac6c6a73e5f | 6 | |
fblanc | 0:fac6c6a73e5f | 7 | //******************************************************************************* |
fblanc | 0:fac6c6a73e5f | 8 | //----------------本例程仅供学习使用,未经作者允许,不得用于其他用途。----------- |
fblanc | 0:fac6c6a73e5f | 9 | //------------------------版权所有,仿冒必究!----------------------------------- |
fblanc | 0:fac6c6a73e5f | 10 | //----------------1.开发环境:Arduino IDE----------------------------------------- |
fblanc | 0:fac6c6a73e5f | 11 | //----------------2.测试使用开发板型号:Arduino Leonardo or Arduino UNO R3------- |
fblanc | 0:fac6c6a73e5f | 12 | //----------------3.单片机使用晶振:16M------------------------------------------ |
fblanc | 0:fac6c6a73e5f | 13 | //----------------4.淘宝网址:http://xmdzpj.taobao.com--------------------------- |
fblanc | 0:fac6c6a73e5f | 14 | //----------------5.作者:真红炎神--------------------------------------------- |
fblanc | 0:fac6c6a73e5f | 15 | //*******************************************************************************/ |
fblanc | 0:fac6c6a73e5f | 16 | |
fblanc | 0:fac6c6a73e5f | 17 | int latchPin = 4; |
fblanc | 0:fac6c6a73e5f | 18 | int clockPin =7; |
fblanc | 0:fac6c6a73e5f | 19 | int dataPin = 8; //这里定义了那三个脚 |
fblanc | 0:fac6c6a73e5f | 20 | |
fblanc | 0:fac6c6a73e5f | 21 | unsigned char Dis_table[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90}; //LED状态显示的变量 |
fblanc | 0:fac6c6a73e5f | 22 | unsigned char Dis_buf[] = {0xF1,0xF2,0xF4,0xF8}; |
fblanc | 0:fac6c6a73e5f | 23 | unsigned char disbuff[] = {0, 0, 0, 0}; |
fblanc | 0:fac6c6a73e5f | 24 | |
fblanc | 0:fac6c6a73e5f | 25 | |
fblanc | 0:fac6c6a73e5f | 26 | void setup () |
fblanc | 0:fac6c6a73e5f | 27 | { |
fblanc | 0:fac6c6a73e5f | 28 | pinMode(latchPin,OUTPUT); |
fblanc | 0:fac6c6a73e5f | 29 | pinMode(clockPin,OUTPUT); |
fblanc | 0:fac6c6a73e5f | 30 | pinMode(dataPin,OUTPUT); //让三个脚都是输出状态 |
fblanc | 0:fac6c6a73e5f | 31 | |
fblanc | 0:fac6c6a73e5f | 32 | } |
fblanc | 0:fac6c6a73e5f | 33 | |
fblanc | 0:fac6c6a73e5f | 34 | void display() |
fblanc | 0:fac6c6a73e5f | 35 | { |
fblanc | 0:fac6c6a73e5f | 36 | for(char i=0; i<=3; i++)//扫描四个数码管 |
fblanc | 0:fac6c6a73e5f | 37 | { |
fblanc | 0:fac6c6a73e5f | 38 | digitalWrite(latchPin,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据 |
fblanc | 0:fac6c6a73e5f | 39 | if(i==1) |
fblanc | 0:fac6c6a73e5f | 40 | { |
fblanc | 0:fac6c6a73e5f | 41 | shiftOut(dataPin,clockPin,MSBFIRST,Dis_table[disbuff[i]]&0x7F); //发送显示码 |
fblanc | 0:fac6c6a73e5f | 42 | } |
fblanc | 0:fac6c6a73e5f | 43 | else |
fblanc | 0:fac6c6a73e5f | 44 | shiftOut(dataPin,clockPin,MSBFIRST,Dis_table[disbuff[i]]); |
fblanc | 0:fac6c6a73e5f | 45 | shiftOut(dataPin,clockPin,MSBFIRST,Dis_buf[i] ); //发送通值 |
fblanc | 0:fac6c6a73e5f | 46 | //串行数据输入引脚为dataPin,时钟引脚为clockPin,执行MSB有限发送,发送数据table[i] |
fblanc | 0:fac6c6a73e5f | 47 | digitalWrite(latchPin,HIGH); //将ST_CP这个针脚恢复到高电平 |
fblanc | 0:fac6c6a73e5f | 48 | delay(2); //延时2ms |
fblanc | 0:fac6c6a73e5f | 49 | } |
fblanc | 0:fac6c6a73e5f | 50 | |
fblanc | 0:fac6c6a73e5f | 51 | } |
fblanc | 0:fac6c6a73e5f | 52 | |
fblanc | 0:fac6c6a73e5f | 53 | void loop() |
fblanc | 0:fac6c6a73e5f | 54 | { |
fblanc | 0:fac6c6a73e5f | 55 | |
fblanc | 0:fac6c6a73e5f | 56 | float val; |
fblanc | 0:fac6c6a73e5f | 57 | val=srf*100; |
fblanc | 0:fac6c6a73e5f | 58 | /* |
fblanc | 0:fac6c6a73e5f | 59 | unsigned char t=((val%1000)/100); |
fblanc | 0:fac6c6a73e5f | 60 | |
fblanc | 0:fac6c6a73e5f | 61 | disbuff[0]= (unsigned char)(val/1000); |
fblanc | 0:fac6c6a73e5f | 62 | disbuff[1]= (unsigned char)((val%1000)/100); |
fblanc | 0:fac6c6a73e5f | 63 | disbuff[2]= (unsigned char)((val%100)/10); |
fblanc | 0:fac6c6a73e5f | 64 | */ |
fblanc | 0:fac6c6a73e5f | 65 | disbuff[0]= (unsigned char)(val/1000); |
fblanc | 0:fac6c6a73e5f | 66 | disbuff[1]= (val/100)-disbuff[0]*10; |
fblanc | 0:fac6c6a73e5f | 67 | disbuff[2]= (val/10)-(disbuff[0]*100+disbuff[1]*10); |
fblanc | 0:fac6c6a73e5f | 68 | disbuff[3]= 0; |
fblanc | 0:fac6c6a73e5f | 69 | |
fblanc | 0:fac6c6a73e5f | 70 | for(char time=0;time<30;time++) //显示30次,当作延时,以免读取过快 |
fblanc | 0:fac6c6a73e5f | 71 | { |
fblanc | 0:fac6c6a73e5f | 72 | display(); |
fblanc | 0:fac6c6a73e5f | 73 | } |
fblanc | 0:fac6c6a73e5f | 74 | } |
fblanc | 0:fac6c6a73e5f | 75 | |
fblanc | 0:fac6c6a73e5f | 76 | |
fblanc | 0:fac6c6a73e5f | 77 | |
fblanc | 0:fac6c6a73e5f | 78 | |
fblanc | 0:fac6c6a73e5f | 79 | main() |
fblanc | 0:fac6c6a73e5f | 80 | { |
fblanc | 0:fac6c6a73e5f | 81 | setup(); |
fblanc | 0:fac6c6a73e5f | 82 | while(1) |
fblanc | 0:fac6c6a73e5f | 83 | { |
fblanc | 0:fac6c6a73e5f | 84 | loop(); |
fblanc | 0:fac6c6a73e5f | 85 | } |
fblanc | 0:fac6c6a73e5f | 86 | } |
fblanc | 0:fac6c6a73e5f | 87 |