Using Tilt Angle with a SCA60C Angle Sensor
Using this Arduino code and SCA60C tilt angle sensor, we can measure the angle of a robotic arm or element. If you need code to control a buzzer or relay at a desired angle, please click here.
306-Basic code to control the direction of rotation of a motor with two relays
语言: C++
/*
* Tile Angle Sensor SCA60C1 N1000060
* It displays the angle from 0 to 180 degrees.
*
* Watch video instructions for this code: https://youtu.be/5DjO8Fo_AtE
*
Written by Ahmad Shamshiri on Mar 17, 2020 at 20:20
* in Ajax, Ontario, Canada. www.robojax.com
*
Need a wiring diagram for this code:
Purchase My Arduino course on Udemy.com http://robojax.com/L/?id=62
*
* Get this code and other Arduino codes from Robojax.com.
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place. Purchase My course on Udemy.com http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const int anglePin =A0;
int angle =0;
const int angleCompensate =0;
const int d1Pin =A1;
int d1State =LOW;
int d1Delay =0;//watch
const int d2Pin =A2;
int d2State =LOW;
int d2Delay =0;
char *lables[]={"Angle","Alarm D1","Alarm D2"};
void setup()
{
Serial.begin(9600); // setup serial
Serial.println("Robojax SCA60C Angle Sensor");
}
void loop(){
//Robojax Tilt Angle Sensor
//Watch video for details: https://youtu.be/5DjO8Fo_AtE
getAngle();
d1Alarm();
d2Alarm();
// print out the value you read:
Serial.print(lables[0]);//
Serial.print(":");
Serial.print(angle);
Serial.println("\xC2\xB0");//degree symbol
// Serial.print("\t");
// Serial.print(lables[1]);
// Serial.print(":");
// Serial.print(d1State);
// Serial.print("\t");
// Serial.print(lables[2]);
// Serial.print(":");
// Serial.println(d2State);
// Serial.println("======");
delay(100);
//Robojax Tilt Angle Sensor
}
void getAngle()
{
//Watch video instructions: https://youtu.be/5DjO8Fo_AtE
angle =map(analogRead(A0), 96, 927, -90, 90) + angleCompensate;
}
/**************************************/
/*!
@brief Get the state of the D1 alarm; HIGH if triggered.
@param No parameter
@returns Returns nothing.
written by Ahmad Shamshiri on Mar 17, 2020 at 20:20 in Ajax, Ontario, Canada
*/
/**************************************/
void d1Alarm()
{
//Watch video for details: https://youtu.be/5DjO8Fo_AtE
//
float vo = analogRead(d1Pin) * (5.0 / 1023.0);
if(vo < 3.5)
{
d1State =HIGH;
delay(d1Delay);
}else{
d1State =LOW;
}
}//d1Alarm() end
/**************************************/
/*!
@brief Get the state of the D1 alarm; HIGH if triggered.
@param No parameter
@returns Returns nothing.
written by Ahmad Shamshiri on Mar 17, 2020 at 20:20 in Ajax, Ontario, Canada
*/
/**************************************/
void d2Alarm()
{
//Watch video for details: https://youtu.be/5DjO8Fo_AtE
//
float vo = analogRead(d2Pin) * (5.0 / 1023.0);
if(vo < 3.5)
{
d2State =HIGH;
delay(d2Delay);
}else{
d2State =LOW;
}
}//d1Alarm() end
资源与参考
尚无可用资源。
文件📁
没有可用的文件。