google-site-verification: google3bd66dd162ef54c7.html

アナログ時計を逆転させる方法の補足説明

 100円ショップのアナログ時計を逆回転させるテクニックは結構試される方が多いようです。具体的な方法については、私のこれまでの記事を追えば判るようにしていますが、すごく判り難くなっています。

 また、市場にはいろんなムーブメントが出回っていて、私の記事と同じに作ってもうまく動かない場合もあるようです。

 これでは良くないので、自分自身の頭の中の整理を兼ねて逆転時計を作る場合の注意点などをまとめてみます。

▼逆転時計のデモ

 以前の記事で使った動画です。できるだけこの時の回路とプログラムで解説したいと思います。なお、プログラムはArduino UNOで動かしています。

 時計は一相パルスモータで動いています。普通の一相モータだと回転方向が決まりませんが、時計の一相モーターでは、静的な磁気回路の中心をずらすことで回転子の停止位置にオフセットが付くようになっています。

 回転子の停止位置にオフセットが付いていればドライブは簡単になります。つまり、駆動するパルス波形を以下のようにすることで、正転/逆転が自在に可能になります。

 ということで、こんな波形でドライブすればOKですが、まだまだややこしい話があるので調整手順を含めて順に解説していきます。

▼駆動パルス波形
波形
 正転の場合は、T1のパルス幅で極性を交互に変えてコイルに通電します。T2を短くすれば高速で動きます。

 逆転の場合は、短時間(T3)パルスを加えた後で極性を逆転したパルスを長め(T4)に通電します。これって、ちょっと手前に引っ張って相手に抵抗させておいて、その力を使っていきなり反対側にひっくり返すような動きになっているのだと思います。

 とにかく時計を正逆自在に動かすには、この図にあるT1からT5まで5種類の時間を決めてやる必要があります。

▼実験用の回路図
逆転時計回路図

 Youtubeの動画の状態の回路図です。動画ではスイッチは無く、ジャンパーピンを手でGNDに挿したりしてますが。

 Arduino UNOの9,10ピンから時計のコイルに接続します。時計は1.5Vの電池で動いているのでArduinoから5Vを加えたら壊れちゃいそうです。また、コイルからのキックバック電圧も怖いので、直列抵抗を入れています。
 この抵抗R1の値は回路図に書いてあるように、あらかじめコイルの抵抗をテスターで測っておいて、コイルに1.5Vが印加されるように計算で求めます。まあ後で調整できるように可変抵抗にしておく手もありだと思います。

 以下、T1からT5までの決定方法を解説します。 調整はデモプログラムを走らせることで行い、値の変更はコンパイル/書き込みで行います。

◆T1の決定方法
 T1はプログラムではcwPulseの値で決めており、9行目の値を変更します。単位はmsで初期値は17msです。
 SW1をGND側に入れてデモプログラムを走らせると0.5秒間隔で正回転パルスが出ます。うまく動かない場合はcwPulseの値を変えます。マージンを見るために正常に動く範囲を確認し、その中心値をT1とします。

 これでT1はOKになったので、残りの値を決定します。そのためにはSW1をオープンの状態で起動した後でGNDに切り替えます。うまくいっていたらYoutubeに投稿した状態で動くはずです。

◆T2の決定方法
 T2はプログラムの49行目のdelay(25);の値として入っています。 単位はmsで初期値は25msです。
 値を小さくすると高速になりますが、最初は誤動作してわけがわからなくなるでしょうから、100msあたりで始めた方がいいです。全体が落ち着いてきたら、値を小さくして高速化します。

◆T3,T4の決定方法
 T3はccwPulse1、T4はccwPulse2で指定します。プログラムの10,11行目です。単位はμsで、初期値はT3=3500μs、T4=12000μsになっています。
 ちゃんと動いているかどうか判り難いので、T5の値を大きくしてから始めるといいでしょう。T5の値は、プログラムの58行目のdelay(50)で50msになっていますが、最初はこれを200msくらいにして調整すると良いと思います。

 何しろココが最大の山場です。T3とT4の最適値は関連性があるような気がしていますが実は私自身も良く判っていません。T3は2000から5000くらいの範囲に最適値があるような気がします。T4は8000から24000μsくらいの範囲に最適値があるような感じです。適当なステップで試行錯誤を繰り返し、その結果をT3とT4のマトリックス上に○×を書くことで、うまく逆転する範囲が見えてくるので、その中心をT3,T4の値としました。

◆T2,T5の設定
 ここまで来たら単発パルス送りは大丈夫な状態になっているはずなので、T2,T5の値を小さくしていって高速化すればOKです。
 以下はここまでの説明に使ったプログラムで、Youtubeに掲載した動画に使ったものです。
/*
  100円ショップのアナログ時計を正転/逆転させる
 Pin8:モードスイッチ
 Pin9,10:時計ステッピングモータコイルへ220Ωを経由して接続
 2013.11.9 ラジオペンチ
 http://radiopench.blog96.fc2.com/
 */
boolean flag=true;                  // 駆動極性フラグ
unsigned int cwPulse = 17;          // 順回転パルス幅 標準は17mS
unsigned int ccwPulse1 = 3500;      // 逆回転パルス幅1
unsigned int ccwPulse2 = 12000;     // 逆回転パルス幅2(値の上限は16383)

void setup() {                
  pinMode(13, OUTPUT);         // 動作表示LED 
  pinMode(9, OUTPUT);          // conect coil thrugh 220Ω
  pinMode(10, OUTPUT);         // coil return
  pinMode(8, INPUT);           // 動作モード設定スイッチ
  digitalWrite(8, HIGH);       // weak pull up pin 8

  while(digitalRead(8)==LOW){  // 8ピンがHIGHになるまで
    cwP();                     // 順回転させて秒針の位置あわせ
    delay(500);
  }
}

void loop() {
  while(digitalRead(8)==HIGH){    // 8ピンがLOWになるまで待つ
  }
  for(int p=5; p<=15; p+=5){      // 適当にデモ運転
    cw(p);
    delay(300);
    ccw(p); 
    delay(500);
    ccw(p);
    delay(300);
    cw(p); 
    delay(500);
  }
  cw(60);
  delay(500);
  ccw(60);
  delay(1000);
}

void cw(int n){                       // 指定パルスだけ順回転
  if(n !=0){
    for(int x = 1; x <=n; x++){
      cwP();
      delay(25);                      // 順回転速度設定
    }
  }
}

void ccw(int n){                      // 指定パルスだけ逆回転
  if(n !=0){
    for(int x = 1; x <=n; x++){
      ccwP();
      delay(50);                      // 逆回転速度設定
    }
  }
}

void cwP(){                           // 順回転パルス発生
  digitalWrite(13,HIGH);              // LED flash
  flag = ! flag;
  if (flag == true) {
    digitalWrite(9, HIGH);            // coil drive foward
    delay(cwPulse);                   // wait 
    digitalWrite(9, LOW);             // coil drive end
  }
  else {
    digitalWrite(10, HIGH);           // coil drive revers
    delay(cwPulse);                   // wait
    digitalWrite(10, LOW);            // coil drive end
  }
  digitalWrite(13,LOW);               // LED flash end
}

void ccwP(){                          // 逆回転パルス発生
  digitalWrite(13,HIGH);              // LED flash
  flag = ! flag;
  if (flag == true) {
    digitalWrite(9, HIGH);            // coil drive foward
    delayMicroseconds(ccwPulse1);     // wait 
    digitalWrite(9, LOW);             // coil drive end

    digitalWrite(10, HIGH);           // coil drive revers
    delayMicroseconds(ccwPulse2);     // wait 
    digitalWrite(10, LOW);            // coil drive end
  }
  else {
    digitalWrite(10, HIGH);           // coil drive revers
    delayMicroseconds(ccwPulse1);     // wait 
    digitalWrite(10, LOW);            // coil drive end

    digitalWrite(9, HIGH);            // coil drive foward
    delayMicroseconds(ccwPulse2);     // wait 
    digitalWrite(9, LOW);             // coil drive end
  }
  digitalWrite(13,LOW);               // LED flash end
}

 以下はお願いですが、100円ショップのアナログ時計の正転逆転駆動可能な条件をまとめてみたいと思っています。
 つまり、実際にうまく動いたT1~T5の値と抵抗値を集めたいと思います。こういう情報を集めることでこれから挑戦される方の参考になると思います。
 情報をお持ちの方はコメントで教えていただくと、他の方の参考になると思います。
 連絡は、以下の情報があると嬉しいです。不明なところは書かなくて結構ですが、私の場合だと、こんな感じになります。

T1=17ms, T2=25ms, T3=3.5ms, T4=12ms, T5=50ms, コイル抵抗=90Ω, R1=220Ω, ポート電圧=5V

【9/17追記】
 皆様から頂いたコメントを記事にまとめました。
関連記事

コメントの投稿

管理者にだけ表示を許可する

No title

どうもBlueです
T1=11ms,T2=250ms,T3=6ms,T4=16ms,T5=250ms,コイル抵抗=160Ω,R1=115Ω>,ポート電圧=3V

セリアで買った目覚まし時計ですが省エネタイプなのか、レスポンスが悪く高速駆動は無理でした。
また正転は簡単ですが逆転はよっこらしょという感じです。
(3v駆動です)

Blueさんおはようございます

コメントありがとうございます。
こういう情報が欲しかったです。約4倍速ですか、確かによっこらしょという感じの動きになるのでしょうね。

始めまして

始めまして、いつも拝見しながらArduino中心で、真似て作らせて頂いております。
私のは、T1=15ms、T2=90ms、T3=5.9ms、T4=16.35ms、T5=200ms、コイル抵抗195Ω、R1=454Ω、ポート電圧5Vとなりました。まだ理解度が薄く、微調整が必要なのかも分かりませんが、概ねデモと同じ動きです。

re:始めまして

SWKさん、コメントりがとうございます。

こうやって情報いただけるとすごく参考になります。

T3は私がやっているより長めのにしている人が多い?

すみません。昨日のデーター撤回です。

申し訳ございません。昨日のデーターは撤回させていただきます。
改めてラジオペンチさんのデモを見直しましたら、あんなにスムース
な動きはできておりません。これでは高度計が出来るのは何時に
なる事やら。
秒針が時を刻んでいる状態ですので、もう少し格闘してみます。
逆転できて有頂天になっておりました。

re:すみません。昨日のデーター撤回です。

SWKさん、了解です。

納得出来る結果になったらお知らせ下さい。

中間報告

実は時計は三台購入しており、二台目と交換したのち、思いっきりT3の数値を減らして、T5を下げてスピードが上がりました。まだラジオペンチさんには及びませんが、高度計作成にかかれるところスピードまでは行けたんでは無いかと思います。取り敢えず数値としてはT1=15ms、T2=24ms、T3=2.5ms、T4=16.3ms、T5=85ms、コイル抵抗=195Ω、R1=454Ω、ポート電圧=5Vとなりました。しかしながら、この値では他の二台は定数の変更が必要な状態です。これについては、今後また日を改めて格闘したいと思います。

re:中間報告

AWKさん、情報ありがとうございます。

どの時計でも上手くいく条件は、たぶん無いので、その条件で高度型作りを始めても良さそうに思います。

No title

100円ショップ時計ではありませんが、MAGというブランドです。
時計の歯車がバラバラなり、元に戻すのがパズルで時間がかかってしまいました。

T1=10ms,T2=20ms,T3=2ms,T4=8ms,T5=100ms,コイル抵抗=320Ω,R1=150Ω,ポート電圧=5Vです。
抵抗値を変化させてみましたが、毎回調整が必要でした。

電流を多めにすると、キビキビ動くようで、T3,T4,T5とも小さくなる傾向がありました。
10.6mAも流している計算で、パルスなので大丈夫なようですが、この辺が限界でしょう。
R1=680ΩではT3=4ms,T4=16ms,T5=180msが限界でした。

WKNさん、こんばんは

情報ありがとうございます。

抵抗を下げて電流を増やすと逆転の速度を上げられるってことですね。
参考になります。

No title

こんばんわ。
2台目のデータです。
T1=10ms,T2=20ms,T3=2ms,T4=16ms,T5=100ms,コイル抵抗=183Ω,R1=220Ω,ポート電圧=5Vです。
R1=470Ωでは調整しても逆転ができませんでしたので、 R1=220Ωに変更したところ、逆転OKでした。
電流が多いので、カタカタうるさい時計になりましたが、調整のスタートは電流多めが良いようです。

WKNさん、おはようございます

追加情報ありがとうございます。

逆転側はコイル電圧1.5Vとなるように設定した抵抗値だとうまくいかないみたいですね。
気になったのでアナログ高度計のコイルのインダクタンスをLCRメーターで測定してみると、45mH@100Hz、直流抵抗70Ωでした。こんなにインダクタンスが高いと電流がなかなか立ち上がらないのかも知れません。

それと、そちらのブログ拝見しました。いろいろやられてますね、巡回させていただきます。

No title

こんにちは。時計3台のうち2台が似た抵抗のコイルで数値もだいたい同じでした。まだまだ、追い詰められると思いますが、数値的にはここら辺で、他の方の数値だと誤動作してしまいます。

T1=27ms, T2=50ms, T3=8ms, T4=11.5ms, T5=100ms, コイル抵抗=185Ω, R1=43
0Ω, ポート電圧=5V

その場ではちゃんと動いているように見えても、ループさせて連続2日3日動作させていると、正方向に3コマくらいずれている時がありました。やっぱり難しいですね。

hiroさん、おはようございます

情報、ありがとうございます。
今、スマホなので細かい検討できないんですが、みなさん逆回転が遅いのはなんでだろとおもってます。

No title

上の、コメンテーターさんは私(ラジオペンチ)です。
スマホから投稿したので名前の入力をミスッてましたorz

No title

100円ショップダイソーで買ったD11という時計でやってみました。

なかなか上手に動かなくて苦労しましたが、みなさんのデータを参考にさせていただき、やっと、正逆転できるようになりました。

そのデータは、
T1=34ms,T2=50ms,T3=10.5ms,T4=13ms,T5=100ms,コイル抵抗=200Ω,R1=466Ω,ポート電圧=5Vです。

今、ちょうど台風が接近していることもあり、この時計でアナログ気圧計を作ってみたいと考えていますが、ラジオペンチさんは丸い文字盤をどのようにして作成しているのですか。

もし宜しければ、データを譲ってもらえませんか。

まっくんさん、こんにちは

駆動条件の連絡ありがとうございます。
書き込んでいただいた条件は、下記の記事の表に追記しました。
http://radiopench.blog96.fc2.com/blog-entry-501.html

気圧計の文字盤データーはあまり出来が良くないので公開していなかったのですが、リクエストなので公開しちゃいます。下記の記事の最後に追記しました。
http://radiopench.blog96.fc2.com/blog-entry-452.html

文字盤の作り方はいろいろあると思います。CADでやるのが正攻法なんでしょうが、私はエクセルで60等分割、12等分割などの円グラフを作り、それを下地にしてパワポで仕上げる方法でやっています。

No title

ラジオペンチ様 久しぶりです。先に作った高度計順調に
動いてます、昇仙峡&四万温泉で活躍?しました。
今度は気圧計を作ろうとダイソーのD11、NO10の時計です、T1=11ms, T2=95ms, T3=5,5ms, T4=14,4ms T5=95msCil=196Ω R1=460ΩVポート電圧5V きびきびとは行きませんが脱調もなく堅実に?動いてます。
後、ムーブメントの針を洒落たものに変えようと東急ハンズで探しています。

座頭位置さん、今晩は

楽しんでいただいてようでよかったです。

コメントに書き込んでいただいた駆動条件を表に追加しました。ありがとうございます。

http://radiopench.blog96.fc2.com/blog-entry-501.html
せっかくだから、現時点のトップに表示されるように日付も操作しています。

いくら高度計だと言っても時計の雰囲気が残っていて、素性は隠せないので、針を交換したくなる気持ち、良く判ります。
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード