test 4D7S + HC-SR04 + NUCLEO-F103RB

Dependencies:   ArduinoFB SRF05 mbed

Committer:
fblanc
Date:
Thu Feb 12 12:42:42 2015 +0000
Revision:
1:0f0f31f25bbd
Parent:
0:fac6c6a73e5f
TEST 4D7S+ HC-SR04+ STM32F103RB ok

Who changed what in which revision?

UserRevisionLine numberNew 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 1:0f0f31f25bbd 58
fblanc 0:fac6c6a73e5f 59 disbuff[0]= (unsigned char)(val/1000);
fblanc 0:fac6c6a73e5f 60 disbuff[1]= (val/100)-disbuff[0]*10;
fblanc 0:fac6c6a73e5f 61 disbuff[2]= (val/10)-(disbuff[0]*100+disbuff[1]*10);
fblanc 0:fac6c6a73e5f 62 disbuff[3]= 0;
fblanc 0:fac6c6a73e5f 63
fblanc 0:fac6c6a73e5f 64 for(char time=0;time<30;time++) //显示30次,当作延时,以免读取过快
fblanc 0:fac6c6a73e5f 65 {
fblanc 0:fac6c6a73e5f 66 display();
fblanc 0:fac6c6a73e5f 67 }
fblanc 0:fac6c6a73e5f 68 }
fblanc 0:fac6c6a73e5f 69
fblanc 0:fac6c6a73e5f 70
fblanc 0:fac6c6a73e5f 71
fblanc 0:fac6c6a73e5f 72
fblanc 0:fac6c6a73e5f 73 main()
fblanc 0:fac6c6a73e5f 74 {
fblanc 0:fac6c6a73e5f 75 setup();
fblanc 0:fac6c6a73e5f 76 while(1)
fblanc 0:fac6c6a73e5f 77 {
fblanc 0:fac6c6a73e5f 78 loop();
fblanc 0:fac6c6a73e5f 79 }
fblanc 0:fac6c6a73e5f 80 }
fblanc 0:fac6c6a73e5f 81