feat: 全量同步 254 个常用的 Arduino 扩展库文件

This commit is contained in:
yczpf2019
2026-01-24 16:05:38 +08:00
parent c665ba662b
commit 397b9a23a3
6878 changed files with 2732224 additions and 1 deletions

View File

@@ -0,0 +1,75 @@
/*
* Ultrasonic.cpp
*
* Library for Ultrasonic Ranging Module in a minimalist way
*
* created 3 Apr 2014
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 23 Jan 2017
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 04 Mar 2017
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 15 May 2017
* by Eliot Lim (github: @eliotlim)
* modified 10 Jun 2018
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 14 Jun 2018
* by Otacilio Maia (github: @OtacilioN | linkedIn: in/otacilio)
*
* Released into the MIT License.
*/
#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
#include "Ultrasonic.h"
Ultrasonic::Ultrasonic(uint8_t trigPin, uint8_t echoPin, unsigned long timeOut) {
trig = trigPin;
echo = echoPin;
threePins = trig == echo ? true : false;
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
timeout = timeOut;
}
unsigned int Ultrasonic::timing() {
if (threePins)
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
if (threePins)
pinMode(trig, INPUT);
previousMicros = micros();
while(!digitalRead(echo) && (micros() - previousMicros) <= timeout); // wait for the echo pin HIGH or timeout
previousMicros = micros();
while(digitalRead(echo) && (micros() - previousMicros) <= timeout); // wait for the echo pin LOW or timeout
return micros() - previousMicros; // duration
}
/*
* If the unit of measure is not passed as a parameter,
* sby default, it will return the distance in centimeters.
* To change the default, replace CM by INC.
*/
unsigned int Ultrasonic::read(uint8_t und) {
return timing() / und / 2; //distance by divisor
}
/*
* This method is too verbal, so, it's deprecated.
* Use read() instead.
*/
unsigned int Ultrasonic::distanceRead(uint8_t und) {
return read(und);
}

View File

@@ -0,0 +1,46 @@
/*
* Ultrasonic.h
*
* Library for Ultrasonic Ranging Module in a minimalist way
*
* created 3 Apr 2014
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 23 Jan 2017
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 04 Mar 2017
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
* modified 15 May 2017
* by Eliot Lim (github: @eliotlim)
* modified 10 Jun 2018
* by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
*
* Released into the MIT License.
*/
#ifndef Ultrasonic_h
#define Ultrasonic_h
/*
* Values of divisors
*/
#define CM 28
#define INC 71
class Ultrasonic {
public:
Ultrasonic(uint8_t sigPin) : Ultrasonic(sigPin, sigPin) {};
Ultrasonic(uint8_t trigPin, uint8_t echoPin, unsigned long timeOut = 20000UL);
unsigned int read(uint8_t und = CM);
unsigned int distanceRead(uint8_t und = CM) __attribute__ ((deprecated ("This method is deprecated, use read() instead.")));
void setTimeout(unsigned long timeOut) {timeout = timeOut;}
private:
uint8_t trig;
uint8_t echo;
boolean threePins = false;
unsigned long previousMicros;
unsigned long timeout;
unsigned int timing();
};
#endif // Ultrasonic_h