Tafuta Msimbo

Jinsi ya Kupima Pembe ya Mwinuko Kwa Kutumia Sensor ya Pembe ya SCA60C na Kuchukua Hatua Kulingana na Pembe Hiyo

Jinsi ya Kupima Pembe ya Mwinuko Kwa Kutumia Sensor ya Pembe ya SCA60C na Kuchukua Hatua Kulingana na Pembe Hiyo

Mafunzo haya yanachunguza kihisi cha pembe cha SCA60C, njia ya gharama nafuu ya kupima mwelekeo na mkao katika miradi yako ya robotiki na elektroniki. Kihisi hutoa voltage ya analogi inayolingana na pembe yake, ambayo Arduino inaweza kusoma na kubadilisha kuwa kipimo sahihi cha digrii kati ya 0 na 180. Mradi huu ni bora kwa kuongeza ufahamu wa mkao katika matumizi mbalimbali.

SCA60C-tilt-Sensor-1

Hapa kuna njia kadhaa za vitendo za kutumia kihisi hiki katika miundo yako:

  • Udhibiti wa Mkono wa Roboti: Fuatilia mkao wa kila kiungo ili kuhakikisha harakati sahihi na salama.
  • Mifumo ya Kusawazisha: Unda jukwaa la kujisawazisha kwa kamera, paneli za jua, au vifaa vingine nyeti.
  • Kengele za Mwendo: Gundua wakati kifaa au kitu kinapohamishwa kutoka mkao wake wa awali uliosawazishwa.
  • Sanaa ya Mwingiliano: Jenga kipande kinachobadilisha tabia au onyesho lake kulingana na jinsi kinavyoinamishwa.
  • Maoni ya Mkao: Toa maoni ya wakati halisi kwenye skrini kwa mwinuko au mzunguko wa kifaa.
SCA60C_wiring-2

Mwongozo huu utakupitia uendeshaji wa kihisi, jinsi ya kuunganisha kwenye Arduino yako, na jinsi ya kutumia msimbo uliotolewa kusoma na kutenda kulingana na data ya pembe.

Vifaa na Vipengele

Ili kufuata mradi huu, utahitaji vipengele vifuatavyo:

  • Bodi ya Arduino (Uno, Nano, Mega, n.k.)
  • Moduli ya Kihisi cha Pembe cha SCA60C
  • Breadboard na waya za jumper
  • LED mbili (hiari, kwa maonyesho ya kengele)
  • Resistor mbili za 220-ohm (hiari, kwa LED)

Kihisi cha SCA60C ni moduli ndogo inayotoa voltage inayolingana na pembe yake ya mwinuko. Kama inavyoonyeshwa kwenye video, moduli pia inajumuisha op-amp ya ndani (LM393) na potentiometer mbili zinazoweza kutumika kuweka viwango vya kengele, kuendesha matokeo ya dijiti ya D1 na D2. (katika video saa 03:20)

Mwongozo wa Uunganishaji

S02-11-Angle_Sensor_SCA60C_wiring

Kuunganisha kihisi cha SCA60C ni rahisi. Tafadhali rejea mchoro hapa chini kwa mwongozo wa kuona.

Hapa kuna mchakato wa uunganishaji hatua kwa hatua:

  1. Nguvu: Unganisha pini ya VCC kwenye kihisi kwenye pini ya 5V ya Arduino yako. Unganisha pini ya GND kwenye GND ya Arduino.
  2. Ishara: Unganisha pini ya Vout (pini ya katikati) kwenye pini ya analogi ya A0 ya Arduino. Hii ndiyo pini kuu inayotumika kusoma pembe. (katika video saa 05:25)
  3. Matokeo ya Kengele (Hiari): Moduli ina matokeo mawili ya ziada ya dijiti, D1 na D2. Ikiwa unataka kutumia vipengele vya kengele, unganisha hizi kwenye pini za A1 na A2 za Arduino, mtawalia. (katika video saa 05:30)

Ikiwa hauitaji vipengele vya kengele, unaweza kuacha pini za D1 na D2 zisizounganishwa, ikitoa pini za analogi za A1 na A2 kwa vihisi vingine. (katika video saa 12:00)

Maelezo ya Msimbo

Msimbo uliotolewa umeundwa kusoma voltage ya analogi kutoka kwenye kihisi na kuibadilisha kuwa pembe katika digrii. Sehemu muhimu zaidi za msimbo za kurekebisha ni vigezo vya usanidi vilivyo juu ya sketch.

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;
SCA60C-tilt-Sensor-4

Hapa kuna maelezo ya kila kigezo kinachoweza kusanidiwa:

  • anglePin: Hii inafafanua pini ya analogi kwenye Arduino iliyounganishwa na pini ya Vout ya kihisi. Unaweza kuibadilisha ikiwa unahitaji kutumia pini tofauti ya analogi.
  • angleCompensate: Hii ni kigezo muhimu kwa urekebishaji. Kihisi hutoa digrii 0 wakati kiko gorofa kabisa. Ikiwa matumizi yako yanahitaji kihisi kuwekwa kwa pembe, unaweza kuongeza kipimo cha digrii hapa. Kwa mfano, kuweka hii kuwa 20 kutafanya kihisi kusoma digrii 0 wakati kimeinamishwa kimwili kwa digrii 20. (katika video saa 06:24)
  • d1Pin na d2Pin: Hizi zinafafanua pini za analogi zinazotumika kusoma hali ya matokeo ya kengele ya kihisi. Ikiwa hautumii kipengele cha kengele, unaweza kupuuza hizi.
  • d1Delay na d2Delay: Vigezo hivi vinaletewa kuchelewa kwa millisecond baada ya kengele kuanzishwa. Hii inaweza kuwa muhimu kwa kusafisha ishara au kuhakikisha hali ya kengele inadumu kwa muda wa chini. (katika video saa 06:48)

Unaweza pia kubadilisha safu ya lables[] ili kubadilisha maandishi yanayochapishwa kwenye Serial Monitor. Kwa mfano, unaweza kubadilisha "Angle" kuwa "Robot Arm Position" ili kufaa zaidi mradi wako. (katika video saa 07:08)

Maonyesho ya Moja kwa Moja ya Mradi

SCA60C_arduino_showing_angle

Katika video, sensor inaonyeshwa kwa kuisogeza katika anuwai ya mwendo wake huku Serial Monitor ikionyesha pembe inayolingana. Mwasilishaji anaonyesha jinsi sensor inavyosoma digrii sifuri ikiwa imelala, na jinsi inavyoweza kupima hadi digrii 90 upande mmoja na digrii -90 upande mwingine. (katika video saa 08:05)

Maonyesho pia yanaangazia kipengele cha kengele. Kwa kurekebisha potentiometers zilizo kwenye bodi, matokeo ya D1 na D2 yanaweza kusanidiwa kuanza wakati sensor inapoinamishwa kutoka nafasi yake ya digrii sifuri. Msimbo unasoma matokeo haya ya dijiti na kuonyesha hali yake (HIGH au LOW) kwenye Serial Monitor, ambayo inaweza kutumika kuanzisha vitendo vingine katika mradi wako. (katika video saa 10:29)

SCA60C-tilt-Sensor--2-dimensions

Sura

  • [00:00] Utangulizi wa Sensor ya Pembe ya SCA60C
  • [00:52] Matumizi na Kesi za Matumizi kwa Kuhisi Pembe
  • [02:19] Kuelewa Moduli ya SCA60C na Vipengele Vyake
  • [04:56] Mwongozo wa Uunganishaji wa Sensor ya SCA60C
  • [06:09] Maelezo ya Msimbo na Vigezo vya Usanidi
  • [08:05] Maonyesho ya Moja kwa Moja ya Upimaji wa Pembe na Urekebishaji
  • [10:29] Maonyesho ya Vipengele vya Kengele vya D1 na D2
  • [13:17] Hitimisho

Bilder

SCA60C-tilt-Sensor-3
SCA60C-tilt-Sensor-3
SCA60C-tilt-Sensor--2-dimensions
SCA60C-tilt-Sensor--2-dimensions
SCA60C-tilt-Sensor-1
SCA60C-tilt-Sensor-1
SCA60C-tilt-Sensor-4
SCA60C-tilt-Sensor-4
S02-11-Angle_Sensor_SCA60C_wiring
S02-11-Angle_Sensor_SCA60C_wiring
SCA60C_arduino_showing_angle
SCA60C_arduino_showing_angle
SCA60C_wiring-2
SCA60C_wiring-2
553-Lesson 18, Robojax Arduino Step-by-Step Course: Using Tilt Angle Sensor SCA60C1
Språk: C++
/*
 *  Robojax Arduino Step By Step Course
 * Tilt Angle Sensor SCA60C1 SCA60C N1000060
 * It displays the angle from 0 to 180 degrees.
 * 
  Please watch video instruction here https://youtu.be/hkhepVzWyWE
Download and resource page https://robojax.com/RJT874
Download and resource page https://robojax.com/RJT18


 

 * 
Written by Ahmad Shamshiri on Mar 17, 2020 at 20:20 
 
 * in Ajax, Ontario, Canada. www.robojax.com


If you found this tutorial helpful, please support me so I can continue creating 
content like this. 

 *  * 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
  	//Robojax Arduino Step By Step Course http://robojax.com/L/?id=338
  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()
{
 
   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()
{
  	//Robojax Arduino Step By Step Course http://robojax.com/L/?id=338
  //
  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()
{
  	//Robojax Arduino Step By Step Course http://robojax.com/L/?id=338
  //
  float vo = analogRead(d2Pin) * (5.0 / 1023.0);

  if(vo < 3.5)
  {
    d2State =HIGH;
    delay(d2Delay);    
  }else{
    d2State =LOW;    
  }  

}//d1Alarm() end

Tänker att du kanske behöver

Resurser och referenser

Inga resurser än.

Filer📁

Datablad (pdf)