記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AVRでサーボモータの制御に成功

ATmega88pでサーボモータの角度制御に成功した!
 
これかなり嬉しいね

サーボモータはSG90を使いました。

サーボモータ2
SG90

サーボモータ
サーボモータ実験の様子


ここから下はただの備忘録

SG90との配線は

黒:GND
赤:Vcc
オレンジ:信号

ちなみに定格電圧は4.8V

信号は20ms周期のパルス信号を送って実験してみた。

ON時間は1~2ms程

今回AVR studioには次のプログラムを入力した。

#include
#include

int main(void){

char x = 0 ; //使わない変数があると確認を求められる

DDRB = 0b11111110; //PB0だけ入力。 出力モードに設定する
DDRD = 0b11111111; //ポートD出力
PORTB = 0b00000001; //入力が0出力が1のとき内蔵されてるプルアップ抵抗が有効になる
PORTD = 0b00000000; //PD0だけH。出力する値をけってする。

while(1){ // 無限ループ 条件式を満たしているときにループする

if(bit_is_clear(PINB,PB0))
{ //もし、PINBレジスタのPB0が0ならば実行する

PORTD = 0b00000001;
_delay_ms(2);
PORTD = 0b00000000;
_delay_ms(18);

}
else
{
PORTD = 0b00000001;
_delay_ms(1);
PORTD = 0b00000000;
_delay_ms(19);
}

}

return 0;

}




唯一つ気になるのは、SWを押さないとき無駄にプルプルしてる。

たぶん、きれいに信号が送られてないのかも。

次回オシロスコープで調べることにする。



とりあえず、サーボモータの制御第一歩です。









コメント

コメントの投稿

非公開コメント

プロフィール

あきら

Author:あきら
ニコニコ技術者見習い。

機械設計を主な仕事としてます。

当ブログはそんな私が独学で電子工作を行い、その成長を記録したものです。


-----------------------------

追伸

ネットができる前とできた後の違い。

それは、知ろうと思えば自分でどこまでも勉強できるようになったということ。

「学校に行かないとできない」「ある会社に入らないとできない」、

そんなことはない。今自分がどこに属しているかは関係ない。

“知ろうと思えば何でも学べる”

今そういう時代に生きている。

このツールの使い方で会社の命運が変わるかもしれない。

あなたはこのツールをどう使いますか?



-----------------------------


twitter
https://twitter.com/akira4900

メルアド
akira49000@gmail.com

FC2カウンター

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。