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
  - two 100 uF electrolytic capacitors

  created 13 Sep 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.5



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

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