Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
サンプルプログラム解説

概要

可変抵抗器を使ってサーボを制御します。

アナログの0番ピンに可変抵抗器、デジタルの9番ピンにサーボを接続することを想定しています。

プログラム

定義等

/*
  Arduino Starter Kit example
 Project 5  - Servo Mood Indicator

 This sketch is written to accompany Project 5 in the
 Arduino Starter Kit

 Parts required:
 servo motor
 10 kilohm potentiometer
 2 100 uF electrolytic capacitors

 Created 13 September 2012
 by Scott Fitzgerald

 http://www.arduino.cc/starterKit

 This example code is part of the public domain
 */

// include the servo library
#include <Servo.h>

Servo myServo;  // create a servo object

int const potPin = A0; // analog pin used to connect the potentiometer
int potVal;  // variable to read the value from the analog pin
int angle;   // variable to hold the angle for the servo motor

サーボライブラリを使うためにServo.hをインクルードしています。

各種変数を定義しています。ピン番号に利用する変数はプログラム中で変更しないので、const宣言しています。

setup()

void setup() {
  myServo.attach(9); // attaches the servo on pin 9 to the servo object
  Serial.begin(9600); // open a serial connection to your computer
}

myServo.attach()で、9番ピンに接続したサーボを利用可能状態にします。

Serial.begin()でシリアル通信の初期化を行います。通信速度は9600bpsです。

loop()

void loop() {
  potVal = analogRead(potPin); // read the value of the potentiometer
  // print out the value to the serial monitor
  Serial.print("potVal: ");
  Serial.print(potVal);

  // scale the numbers from the pot
  angle = map(potVal, 0, 1023, 0, 179);

  // print out the angle for the servo motor
  Serial.print(", angle: ");
  Serial.println(angle);

  // set the servo position
  myServo.write(angle);

  // wait for the servo to get there
  delay(15);
}

analogRead()を使って可変抵抗器の電圧を読み取り、potValに設定します。

Serial.print()で、読み取った値をシリアルコンソールに表示します。

map()を使ってpotValの値(0から1023)を0から179に変換します。

Serial.print()で、変換後の値をシリアルコンソールに表示します。

myServo.write()を使って、サーボを回転させいます。

delay()を使って、サーボが動き終わるのを待ちます。

バージョン

Arduino 1.8.3



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2012 garretlab all rights reserved.
inserted by FC2 system