Arduino – 9g Micro Servo Devresi

Merhaba, arduino devre elemanlarını tanımaya ve onların bağlantı şekillerini öğrenmeye devam ediyoruz.

 

Görselde gösterildiği gibi bir devre kuracak olursanız devrenin tamamlanmış olduğunu göreceksiniz.

 

Test Kodu –>

// Include Libraries
#include "Arduino.h"
#include "Servo.h"


// Pin Definitions
#define SERVO9G_PIN_SIG 2

// Global variables and defines
const int servo9gRestPosition = 20; //Starting position
const int servo9gTargetPosition = 150; //Position when event is detected
// object initialization
Servo servo9g;

// define vars for testing menu
const int timeout = 10000; //define timeout of 10 sec
char menuOption = 0;
long time0;

// Setup the essentials for your circuit to work. It runs first every time your circuit is powered with electricity.
void setup() 
{
 // Setup Serial which is useful for debugging
 // Use the Serial Monitor to view printed messages
 Serial.begin(9600);
 while (!Serial) ; // wait for serial port to connect. Needed for native USB
 Serial.println("start");
 
 servo9g.attach(SERVO9G_PIN_SIG);
 servo9g.write(servo9gRestPosition);
 delay(100);
 servo9g.detach();
 menuOption = menu();
 
}

// Main logic of your circuit. It defines the interaction between the components you selected. After setup, it runs over and over again, in an eternal loop.
void loop() 
{
 
 
 if(menuOption == '1') {
 // 9g Micro Servo - Test Code
 // The servo will rotate to target position and back to resting position with an interval of 500 milliseconds (0.5 seconds) 
 servo9g.attach(SERVO9G_PIN_SIG); // 1. attach the servo to correct pin to control it.
 servo9g.write(servo9gTargetPosition); // 2. turns servo to target position. Modify target position by modifying the 'ServoTargetPosition' definition above.
 delay(500); // 3. waits 500 milliseconds (0.5 sec). change the value in the brackets (500) for a longer or shorter delay in milliseconds.
 servo9g.write(servo9gRestPosition); // 4. turns servo back to rest position. Modify initial position by modifying the 'ServoRestPosition' definition above.
 delay(500); // 5. waits 500 milliseconds (0.5 sec). change the value in the brackets (500) for a longer or shorter delay in milliseconds.
 servo9g.detach(); // 6. release the servo to conserve power. When detached the servo will NOT hold it's position under stress.
 }
 
 
 
 if (millis() - time0 > timeout)
 {
 menuOption = menu();
 }
 
}

// Menu function for selecting the components to be tested
// Follow serial monitor for instrcutions
char menu()
{

Serial.println(F("\nWhich component would you like to test?"));
 Serial.println(F("(1) 9g Micro Servo"));
 Serial.println(F("(menu) send anything else or press on board reset button\n"));
 while (!Serial.available());

// Read data from serial monitor if received
 while (Serial.available()) 
 {
 char c = Serial.read();
 if (isAlphaNumeric(c)) 
 {
 if(c == '1') 
 Serial.println(F("Now Testing 9g Micro Servo"));
 else
 {
 Serial.println(F("illegal input!"));
 return 0;
 }
 time0 = millis();
 return c;
 }
 }
 }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir