Lab_interaccio/2020/DFRobot_Distance_A02/DFRobot_Distance_A02.ino

63 lines
1.5 KiB
Arduino
Raw Normal View History

2025-02-25 21:29:42 +01:00
/*
*@File : DFRobot_Distance_A02.ino
*@Brief : This example use A02YYUW ultrasonic sensor to measure distance
* With initialization completed, We can get distance value
*@Copyright [DFRobot](http://www.dfrobot.com),2016
* GUN Lesser General Pulic License
*@version V1.0
*@data 2019-8-28
*/
#include "wiring_private.h"
//Uart Serial2(&sercom1, 12, 10, SERCOM_RX_PAD_3, UART_TX_PAD_2);
unsigned char data[4]={};
float distance;
void setup()
{
Serial.begin(57600);
// Serial2.begin(9600);
Serial1.begin(9600);
// pinPeripheral(12, PIO_SERCOM); //Assign RX function to pin 12
// pinPeripheral(10, PIO_SERCOM); //Assign TX function to pin 10
}
void loop()
{
do{
for(int i=0;i<4;i++)
{
data[i]=Serial1.read();
}
}while(Serial1.read()==0xff);
Serial1.flush();
if(data[0]==0xff)
{
int sum;
sum=(data[0]+data[1]+data[2])&0x00FF;
if(sum==data[3])
{
distance=(data[1]<<8)+data[2];
if(distance>30)
{
//Serial.print("distance=");
Serial.println(distance/10);
//Serial.println("cm");
}else
{
Serial.println("Below the lower limit");
}
}else Serial.println("ERROR");
}
delay(100);
}
////// Attach the interrupt handler to the SERCOM
//void SERCOM1_Handler()
//{
// Serial2.IrqHandler();
//}