Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
123
返回列表 發新帖
樓主: leo0983405269
打印 上一主題 下一主題

請問DHT11如果要傳送到手機

[複製鏈接]
41#
 樓主| 發表於 2017-11-22 13:58:57 | 顯示全部樓層
超新手 發表於 2017-11-15 11:10

你的 arduino 已經用序列監控視窗"稍微"測過
加上你之前的測試.

可以請問一下  9V的電池有可能因為感應器太多
所以沒辦法正常運作嗎
我多加個七彩LED燈  燈跟其他感應器的功能有出來  遙控車的功能卻沒有了

#include <SoftwareSerial.h> //Arduino I2C library
#include "DHT.h"
#define DHTPIN A1  
#define DHTTYPE DHT11   // DHT 11

const int trig =  8; //define Arduino pin
const int echo =  7;
const int TX   = 1;
const int RX   = 0;
const int delay_time = 400; //delay 1000 ms for every measurment

const int Motor_E2 = 11;
const int Motor_E1 = 10;  
const int Motor_M1 = 12;   
const int Motor_M2 = 13;   
char val;  // variable to receive data from the serial port(bluetooth)
DHT dht(DHTPIN, DHTTYPE);
void setup()  
{
  Serial.begin(9600); //set baud rate of Bluetooth
  pinMode(Motor_M1, OUTPUT);
  pinMode(Motor_M2, OUTPUT);
  pinMode(trig, OUTPUT); //set trigger pin to OUTPUT (-> pin trig of Ultrasonic Sensor)
  pinMode(echo, INPUT); //set echo pin to INPUT (-> pin echo of Ultrasonic Sensor)
  dht.begin();
  pinMode(A3, OUTPUT);
}

void loop()
{
  byte Data[12];
  byte cmmd[20];
  int val;
  int insize;
  float duration;
  float distance;
  digitalWrite(trig, HIGH); //trigger sona for 1 ms
  delayMicroseconds(1000);
  digitalWrite(trig, LOW);
  duration = pulseIn(echo, HIGH);
  distance = (duration / 2) * 0.034;
  int x = (int) (distance * 100); //times 100 and convert disance to integer
  int y = dht.readHumidity();
  int z = dht.readTemperature();
  int e = analogRead(A5);
  Data[0]=97;
  Data[1]=x/256;
  Data[2]=x%256;
  Data[3]='b' ;
  Data[4]=y/256;
  Data[5]=y%256;
  Data[6]='c' ;
  Data[7]=z/256;
  Data[8]=z%256;
  Data[9]='d';
  Data[10]=e/256;
  Data[11]=e%256;

  digitalWrite(A3, HIGH);
  delay(2000);  
  digitalWrite(A3, LOW);  
  delay(2000);


  if(Serial.available()>0)
  {
    val = Serial.read();
    switch(val)
    {
      case 97:   //測距離溫溼度氣體
      for(int i = 0; i < 12; i++)
        Serial.write(Data); //send Data to phone
        break;
      case 'f':   // car forward
                forward(0, 255);
                break;
      case 'd':   // car backward
                backward(0, 255);
                break;
      case 'l':   // car turn left
                left(0, 255);
                break;
      case 'r':   // car turn right
                right(0, 255);
                break;
      case 's':   // car stop
                motorstop(0, 0);
                break;
    }     
  }
}

void motorstop(byte flag, byte motorspeed)
{
  digitalWrite( Motor_E1, motorspeed);
  digitalWrite( Motor_E2, motorspeed);
}

void forward(byte flag, byte motorspeed)
{
  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 200);
  analogWrite( Motor_E2, 200);
}

void backward(byte flag, byte motorspeed)
{
  digitalWrite( Motor_M1, LOW);
  digitalWrite( Motor_M2, LOW);

  analogWrite( Motor_E1, 200);
  analogWrite( Motor_E2, 200);
}

void right(byte flag, byte motorspeed)
{
  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 150);
  analogWrite( Motor_E2, 0);
}

void left(byte flag, byte motorspeed)
{
  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 0);
  analogWrite( Motor_E2, 150);
}
42#
 樓主| 發表於 2017-11-22 17:14:16 | 顯示全部樓層
超新手 發表於 2017-11-22 14:36
中間這四行
digitalWrite(A3, HIGH);
  delay(2000);  

懂了  謝謝
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-2 14:32 , Processed in 0.196388 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表