その他のショップやセンサについては、このブログページ右側の「ショップリスト」にも記載してあるので参考にして下さい。
センサ活用ハンドブック―色/明るさから距離/圧力まで14のターゲットを検出 (トランジスタ技術SPECIAL)
posted with amazlet at 09.04.01
CQ出版
売り上げランキング: 109202
四谷アートステュディウム・建築発明工作ゼミ(2008年度)の授業サブノート
主にProcessingやArduinoについて記載しています。
「モータドライバIC」
TA7291P :連続1.0A(最大2.0A):モータ用電源 0~20V
TA7279P :連続1.0A(最大3.0A):モータ用電源 0~16V(PWM端子なし)
TA8440HQ:連続1.5A(最大3.0A):モータ用電源 0~50V
UPD16805:連続1.0A(最大4.2A):モータ用電源 0.5~8.0V
TA8429HQ:連続3.0A(最大4.5A):モータ用電源 7~27V
L6203 :連続4.0A(最大5.0A):モータ用電源 12~48V
TB62300F:連続2.5A(最大8.0A):モータ用電源 18~40V
「モータドライバボード」
Poloru VNH3SP30:連続9A(最大30A) :モータ用電源最大30V
Poloru VNH2SP30:連続14A(最大30A):モータ用電源最大19V
「モータコントローラ」
SyRen10 :連続10A(最大15A) :モータ用電源 6~24V
SyRen25 :連続25A(最大45A) :モータ用電源 6~24V
Pololu SMC04 :最大30A :モータ用電源 6~18V
KONDO UMD-540S:50A以下:モータ用電源 4.8~12V
「デュアルモータコントローラ(モータ2個制御)」
Sabertooth2x5 :連続5A(最大10A) :モータ用電源 6~18V
Sabertooth2x10 :連続10A(最大15A):モータ用電源 6~24V
Sabertooth2x25 :連続25A(最大50A):モータ用電源 6~24V
「ラジコンカー用スピードコントローラ/アンプ」
FUTABA MC230CR 連続45A(最大90A) :モータ用電源7.2V〜8.4V
FUTABA MC330CR 連続100A(最大200A):モータ用電源7.2V〜8.4V
KONDO VFS-FR 連続240A(最大960A):モータ用電源7.2V〜8.4V
FA-130RA:1.5V時/最大効率時電流0.66A/瞬間最大電流2.20A
RE-140RA:1.5V時/最大効率時電流0.66A/瞬間最大電流2.10A
RE-260RA:3.0V時/最大効率時電流0.64A/瞬間最大電流2.70A
RE-280RA:3.0V時/最大効率時電流0.87A/瞬間最大電流4.70A
RS-380PH:7.2V時/最大効率時電流3.23A/瞬間最大電流14.9A
RS-540SH:7.2V時/最大効率時電流4.57A/瞬間最大電流22.2A
国内メーカーの低価格サーボフタバ S3003バルク版 価格:1,300円(税込、送料別) |
void setup(){
//特になし
}
void loop(){
//可変抵抗器の値を読み込み4で割る
int val=analogRead(0)/4;
//アナログ出力
analogWrite(3,val); //0~255
//0.05秒ループにする
delay(20);
}
#include <Servo.h>
Servo servo;//サーボのインスタンス
void setup(){
//サーボの信号線を3番ピンに接続
//(PWMピン以外のピンにも接続可)
servo.attach(3);
}
void loop(){
//センサの読み取り値
int val=analogRead(0);
//map()を使って0~1023のセンサ読取り値を0~180の角度に変換
int deg=map(val,0,1023,0,180);
//サーボ出力
servo.write(deg);//0~180まで
}
#include <Servo.h>
Servo servo;//サーボのインスタンス
void setup(){
//サーボの信号線を3番ピンに接続
//(PWMピン以外のピンにも接続可)
servo.attach(3);
}
void loop(){
//センサからの読取り値
int val=analogRead(0);//0~1023
//map()を使って0~1023を544~2400に変換
int pulseWidth=map(val,0,1023,544,2400);
//サーボ出力
servo.writeMicroseconds(pulseWidth);//変換したパルス幅値を代入:544~2400
}
#include <Servo.h>
Servo servo;
void setup(){
//サーボの信号線を3番ピンに接続
//(PWMピン以外のピンにも接続可)
servo.attach(3);
}
void loop(){
//読み取り値をスケールダウン
float val=analogRead(0)*0.176;
//サーボ出力
servo.write(int(val));
//周期を更新
Servo::refresh();
}
void setup(){
//パルス出力ピンの設定
//(デジタル出力なのでどのピンでも可)
pinMode(3,OUTPUT);
}
void loop(){
//可変抵抗器の読み込み値を2倍にする(振幅値:約2000)
int val=analogRead(0)*2;
//パルス:HIGHを出力
digitalWrite(3,HIGH);
//パルス最小値を500としvalを代入
delayMicroseconds(val+500);
//パルス:LOWを出力
digitalWrite(3,LOW);
//HIGHの継続時間を差引いて周期を20000usに調整
delayMicroseconds(10000-(val+500));
delayMicroseconds(10000);
}
東芝 TA7291P 価格:189円(税込、送料別) |
void setup(){
pinMode(1,OUTPUT); //信号用ピン
pinMode(2,OUTPUT); //信号用ピン
}
void loop(){
//アナログ入力:0番ピンの値を2で割る
int val=analogRead(0)/2; //0~511の値にする
//静止/正転/逆転の状態に分けてプログラムする
if(val>=255 && val<=256){ //静止:255~256
//LOW,LOWでデジタル出力
digitalWrite(1,LOW);
digitalWrite(2,LOW);
}else if(val>256){ //正転:257~511
//HIGH,LOWでデジタル出力
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
//valが大きいほど出力値も大きくなる
analogWrite(3,val-256); //出力値:1~255
}else{ //逆転:0~254
//LOW,HIGHでデジタル出力
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
//valが小さいほど出力値は大きくなる
analogWrite(3,255-val); //出力値:1~255
}
}
void setup(){
//12番ピンをデジタル入力に設定
pinMode(12,INPUT);
//13番ピンをデジタル出力に設定
pinMode(13,OUTPUT);
}
void loop(){
//デジタル入力(12番ピン)がHIGH(5V)なら
if(digitalRead(12)==HIGH){
//13番ピンをHIGH(5V)で出力
digitalWrite(13,HIGH);
}else{ //デジタル入力がLOW(0V)なら
//13番ピンをLOW(0V)で出力
digitalWrite(13,LOW);
}
}
digitalWrite(3,LOW);
digitalWrite(4,LOW);
void setup(){
//1〜7番ピンを出力に設定
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop(){
//「1」を表示
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
delay(1000);
}
void setup(){
//1〜7番ピンを出力に設定
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop(){
//「0」を表示
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(1000);
//「1」を表示
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
delay(1000);
//「2」を表示
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(1000);
//「3」を表示
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(1000);
}
void setup(){
for(int i=1; i<=7;i++){ //iを1から7までの数とし
pinMode(i,OUTPUT); //1から7までのピンを出力に設定
}
}
void loop(){
zero();
delay(1000);
one();
delay(1000);
two();
delay(1000);
three();
delay(1000);
}
void zero(){
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}
void one(){
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
}
void two(){
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
void three(){
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
boolean table[4][7]={ {0,0,0,0,0,0,1},
{1,1,0,0,1,1,1},
{0,0,1,0,0,1,0},
{1,0,0,0,0,1,0} };
void setup(){
for(int i=1; i<=7;i++){
pinMode(i,OUTPUT);
}
}
void loop(){
for(int i=0;i<=3;i++){
for(int j=0;j<=6;j++){
digitalWrite(j+1,table[i][j]);
}
delay(1000);
}
}
boolean zero[]={0,0,0,0,0,0,1};
boolean one[]={1,1,0,0,1,1,1};
boolean two[]={0,0,1,0,0,1,0};
boolean three[]={1,0,0,0,0,1,0}
boolean table[4][7]={ {0,0,0,0,0,0,1},
{1,1,0,0,1,1,1},
{0,0,1,0,0,1,0},
{1,0,0,0,0,1,0} };
void loop(){
for(int i=0;i<=3;i++){
for(int j=0;j<=6;j++){
digitalWrite(j+1,table[i][j]);
}
delay(1000);
}
}
void setup(){
//初期設定のプログラム
}
void loop(){
//ループ処理のプログラム
}