Arduino教程(提高篇)——SR04超声波类库的使用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

Arduino教程(提高篇)——SR04超声波类库的使用

  [复制链接]
发表于 2016-4-8 17:04 | 显示全部楼层
不行啊,库报错。自己写的也是没有反应
发表于 2016-4-8 17:05 | 显示全部楼层
C:\Users\Administrator\Desktop\新建文件夹
发表于 2016-4-22 15:28 | 显示全部楼层
也来调调个试试看。。
发表于 2016-4-23 12:28 | 显示全部楼层
第一次接触arduino多多指教
发表于 2016-4-23 15:58 | 显示全部楼层
dgdddgdggdf 发表于 2015-8-10 08:22
**** 作者被禁止或删除 内容自动屏蔽 ****

你指的是1602嗎?
我寫了LCD 1602版本與OLED 12864版本

LCD:
[mw_shl_code=c,true]#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
const int trig = 6;
const int echo = 7;
int inter_time = 1000;
int time = 0;

void setup() {
  lcd.begin(16, 2);
  pinMode (trig, OUTPUT);
  pinMode (echo, INPUT);
}

void loop() {
  float duration, distance;
  digitalWrite(trig, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trig, LOW);
  duration = pulseIn (echo, HIGH);
  distance = (duration/50);
  lcd.setCursor (0,0);
  lcd.print("Data No.");
  lcd.print (time);
  time = time +1;
  lcd.setCursor(0, 1);  
  lcd.print ("Distance:");   
  lcd.print(distance);
  lcd.print ("cm");
  delay(900);
  lcd.clear();
  delay(100);
}[/mw_shl_code]

OLED:
[mw_shl_code=c,true]/*-----Library-----*/
#include <Wire.h>
#include <U8glib.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

/*-----HC-SR04 Setup-----*/
const int trig = 6; //聲納輸出腳位
const int echo = 7; //聲納接收腳位
int inter_time = 1000;  //偵測時間
int time = 0;

/*-----Char Setup-----*/
char str[10];

void drawTest()
{
  u8g.setFont(u8g_font_osb18);
  u8g.drawStr( 0, 30, "Loading...");
}

void setup()
{
  Serial.begin(9600);
  delay(500);
  Serial.println("Loading...");
  u8g.firstPage();
  u8g.nextPage();  

  pinMode (trig,OUTPUT);
  pinMode (echo,INPUT);
  
  do
  {
    drawTest();
  } while(u8g.nextPage());
}

void loop()
{
  /*-----HC-SR04 Setup-----*/
  float duration, distance;
  digitalWrite(trig,HIGH);
  delayMicroseconds(1000);
  digitalWrite(trig,LOW);
  duration = pulseIn (echo,HIGH);
  distance = (duration/50);
  time = time + 1;
  delay(900);

  /*-----Print in Monitor-----*/
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.print("cm");

  /*-----print in OLED-----*/

  u8g.firstPage();  
  do {

    u8g.setFont(u8g_font_helvB08);  //字型

    u8g.drawStr( 0, 30, "Distance:");
    u8g.drawStr( 50, 30, dtostrf(distance, 5, 2, str));
    u8g.drawStr( 90, 30, "cm");

  } while( u8g.nextPage() );
  delay(100);
}[/mw_shl_code]

发表于 2016-4-24 22:19 | 显示全部楼层
谢谢楼主的分享,刚开始学习,验证成功,谢谢楼主详细教程。[face13.gif]
发表于 2016-4-25 18:03 | 显示全部楼层
zm62 发表于 2016-3-13 17:18
SR04测距是2cm-400cm

可以让他在超过范围的情况下不显示吗或者显示一些我们自己想要显示的东西
发表于 2016-8-9 15:17 | 显示全部楼层
hc-SR04的精准度怎么样啊,楼主
发表于 2016-8-10 19:06 | 显示全部楼层
:lol:lol:lol:lol:lol
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 22:46 , Processed in 0.097625 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表