スポンサーサイト


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

Posted by ミリタリーブログ  at 

2022年06月03日

16F1503忘却の中で

16F1503を使用したライントレースのためのデータ

PWM出力とAD変換をしたプログラム

忘れたとき用に残す

/*
* File: analog.c
* Author: teacher
*
* Created on 2020/07/11, 14:32
*/

#include
#include
#include

#define _XTAL_FREQ 4000000

// PIC16F1503 Configuration Bit Settings

// 'C' source line config statements

#include

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

// CONFIG1
#pragma config FOSC = INTOSC // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable (Brown-out Reset disabled)
#pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)

// CONFIG2
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

#define FOSC (4000000L)
#define FCYC (FOSC/4)

/* required for __delay_ms() macros */
#define _XTAL_FREQ FOSC


/* set PWM period to FCYC/(250 * 4) or 1000Hz when using 4MHz oscillator */
#define PWM_PERIOD 249
#define TMR2IF_MASK 0b00000010



/*
* Initialize PWM1
*/
void PWM1_Init(void)
{

T2CON = 0; /* stop TIMER2 */
PWM1CON = 0; /* stop PWM1 */

PWM1DCH = 0; /* set duty cycle to 0% */
PWM1DCL = 0;

PR2 = PWM_PERIOD - 1; /* set PWM period */

PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

T2CON = T2CON | 0b00000101; /* turn on TIMER2 with a 4:1 prescaler*/

PWM1CON = PWM1CON | 0b10000000; /* enable PWM1 */

/* wait for first PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

TRISC = 0b00100000; /* Make GPIO for PWM1 an output RC5*/
PWM1CON = PWM1CON | 0b01100000; /* enable PWM1 output */
}

void PWM2_Init(void)
{

T2CON = 0; /* stop TIMER2 */
PWM2CON = 0; /* stop PWM1 */

PWM2DCH = 0; /* set duty cycle to 0% */
PWM2DCL = 0;

PR2 = PWM_PERIOD - 1; /* set PWM period */

PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

T2CON = T2CON | 0b00000101; /* turn on TIMER2 with a 4:1 prescaler*/

PWM2CON = PWM2CON | 0b10000000; /* enable PWM1 */

/* wait for first PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

TRISC = 0b00001000; /* Make GPIO for PWM2 an outputRC3 */
PWM2CON = PWM2CON | 0b01100000; /* enable PWM1 output */
}
/*PWM3setiup*/
void PWM3_Init(void)
{

T2CON = 0; /* stop TIMER2 */
PWM3CON = 0; /* stop PWM1 */

PWM3DCH = 0; /* set duty cycle to 0% */
PWM3DCL = 0;

PR2 = PWM_PERIOD - 1; /* set PWM period */

PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

T2CON = T2CON | 0b00000101; /* turn on TIMER2 with a 4:1 prescaler*/

PWM3CON = PWM3CON | 0b10000000; /* enable PWM1 */

/* wait for first PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

TRISA = 0b00000100; /* Make GPIO for PWM3 an output RA2*/
PWM3CON = PWM3CON | 0b01100000; /* enable PWM1 output */
}
void PWM4_Init(void)
{

T2CON = 0; /* stop TIMER2 */
PWM4CON = 0; /* stop PWM1 */

PWM4DCH = 0; /* set duty cycle to 0% */
PWM4DCL = 0;

PR2 = PWM_PERIOD - 1; /* set PWM period */

PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

T2CON = T2CON | 0b00000101; /* turn on TIMER2 with a 4:1 prescaler p153*/

PWM4CON = PWM4CON | 0b10000000; /* enable PWM1 */

/* wait for first PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

TRISC = 0b00000010; /* Make GPIO for PWM4 an output RC1*/
PWM4CON = PWM4CON | 0b01100000; /* enable PWM1 output */
}
/*
* Set PWM1 duty cycle
*/
void PWM1_SetDutyCycle( unsigned int DutyCycle1 )
{
PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

/* wait for a PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

/* update PWM duty cycle for the next period */
//PWM1DCH = DutyCycle >> 8;
// PWM1DCL = DutyCycle & 0x00FF;//pwm tyousei
PWM1DCH = DutyCycle1;
PWM1DCL = 0b00000000;
DutyCycle1=0x0000;
}
void PWM2_SetDutyCycle( unsigned int DutyCycle2 )
{
PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

/* wait for a PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

/* update PWM duty cycle for the next period */
//PWM2DCH = DutyCycle >> 8;
//PWM2DCL = DutyCycle & 0x00FF;//pwm tyousei
PWM2DCH = DutyCycle2;
PWM2DCL = 0b00000000;
DutyCycle2=0x0000;
}

void PWM3_SetDutyCycle( unsigned int DutyCycle3 )
{
PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

/* wait for a PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

/* update PWM duty cycle for the next period */
//PWM3DCH = DutyCycle >> 8;
//PWM3DCL = DutyCycle & 0x00FF;//pwm tyousei
PWM3DCH = DutyCycle3;
PWM3DCL =0x00;
DutyCycle3=0x0000;
}

void PWM4_SetDutyCycle( unsigned int DutyCycle4 )
{
PIR1 &= ~TMR2IF_MASK; /* clear TMR2IF */

/* wait for a PWM period to start */
while((PIR1 & TMR2IF_MASK) == 0);

/* update PWM duty cycle for the next period */
// PWM4DCH = DutyCycle >> 8;
// PWM4DCL = DutyCycle & 0x00FF;//pwm tyousei
PWM4DCH = DutyCycle4;
PWM4DCL = 0x00;
DutyCycle4=0x0000;
}

int adconv1();
int adconv2();
int adconv3();

unsigned int ADdata1;
unsigned int ADdata2;
unsigned int ADdata3;

unsigned int total;
unsigned int data;
/*
*
*/
int main(int argc, char** argv) {

// int ADVcc=0;
INTCON = 0b00000000;//P64
PIE1 = 0b00000000;//P65
PIE2 = 0b00000000;//P66
OSCCON = 0b01101000; //4mhz
OPTION_REG = 0b11111111;
PORTA = 0b00010000;
PORTC = 0b00000101;
TRISA = 0b00011000;//????
TRISC = 0b00000101;//PORTC????
LATA = 0b00000000;//Hi or Low
LATC = 0b00000000;//Hi or Low
ANSELA = 0b00010000;//analog to "1" digital to"0"
ANSELC = 0b00000101;//poot"C"
WPUA = 0b00000000;//pullup



while(1){
adconv1();
adconv2();
adconv3();
PWM1_Init();
PWM2_Init();
PWM3_Init();
PWM4_Init();
int p1=0xFF;
int p2=0x00;
int p3=0x0F;
int p4=0xB0;
int p5=0xA0;
int p6=0x0A;
// AN4 mannaka(AD1 AN6 hidari(AD2 AN3 migi(AD3 (sinnkouhoukonitaisite)
if( ADdata2>=0 && ADdata2<=300 && ADdata1>=300 && ADdata1<=1000 && ADdata3>=0 && ADdata3<=300){
PWM1_SetDutyCycle(p1);//kokowokaeru RC5
PWM2_SetDutyCycle(p2);//kokowokaeru RC3
PWM3_SetDutyCycle(p1);//kokowokaeru RA2
PWM4_SetDutyCycle(p2);//kokowokaeru RC1
_delay(10000);
}
else if( ADdata2>=300 && ADdata2<=1000 && ADdata1>=0 && ADdata1<=300 && ADdata3>=0 && ADdata3<=300){
PWM1_SetDutyCycle(p4);//kokowokaeru RC5
PWM2_SetDutyCycle(p2);//kokowokaeru RC3
PWM3_SetDutyCycle(p4);//kokowokaeru RA2
PWM4_SetDutyCycle(p2);//kokowokaeru RC1
_delay(10000);
}else if( ADdata2>=0 && ADdata2<=300 && ADdata1>=0 && ADdata1<=300 && ADdata3>=300 && ADdata3<=1000){
PWM1_SetDutyCycle(p1);//kokowokaeru RC5
PWM2_SetDutyCycle(p2);//kokowokaeru RC3
PWM3_SetDutyCycle(p1);//kokowokaeru RA2
PWM4_SetDutyCycle(p2);//kokowokaeru RC1
_delay(10000);

}/*else if( ADdata2>=0 && ADdata2<=400 && ADdata1>=400 && ADdata1<=1000 && ADdata3>=0 && ADdata3<=400){
PWM1_SetDutyCycle(p1);//kokowokaeru RC5
PWM2_SetDutyCycle(p2);//kokowokaeru RC3
PWM3_SetDutyCycle(p1);//kokowokaeru RA2
PWM4_SetDutyCycle(p2);//kokowokaeru RC1
_delay(10000);

}
* */else{
PWM1_SetDutyCycle(p2);//kokowokaeru RC5
PWM2_SetDutyCycle(p2);//kokowokaeru RC3
PWM3_SetDutyCycle(p2);//kokowokaeru RA2
PWM4_SetDutyCycle(p2);//kokowokaeru RC1
_delay(10000);
}
return (EXIT_SUCCESS);
}

}
int adconv1(){

ADCON0=0b00010011; //
ADCON1=0b10010000; //Fosc8 001 FOSC16 101

_delay(20);
ADCON0bits.GO =1;
while(ADCON0bits.GO_nDONE){}
unsigned int value1= ADRESH << 8| ADRESL;
ADdata1=value1;

}

int adconv2(){


ADCON0=0b00011011; //6-2bit 0011=3
ADCON1=0b10010000; //Fosc8 001 FOSC16 101

_delay(20);
ADCON0bits.GO =1;
while(ADCON0bits.GO_nDONE){}
unsigned int value2= ADRESH << 8| ADRESL;
ADdata2=value2;
}
int adconv3(){

ADCON0=0b00001111; //
ADCON1=0b10010000; //Fosc8 001 FOSC16 101

_delay(20);
ADCON0bits.GO =1;
while(ADCON0bits.GO_nDONE){}
unsigned int value3= ADRESH << 8| ADRESL;
ADdata3=value3;
}
  


Posted by ハロ  at 11:06Comments(0)電子関係

2017年07月04日

ムーバープレートの制御器




こんにちは、ハロです


今回は、前々から頼まれていた
ムーバーの制御器を作ってみました

詳細は動画の中で見てください


5秒間動くんで、モータの回転数を調整して
端まで動くように調整すればいいんじゃないかなって


このあと、モータを接続して動作も確認できたので
いい感じです

ノイズのほうは、モータが止まった後に信号を受け取るので
ノイズ対策はしなくて大丈夫なようです
まぁコンデンサ10μFくらいつっこんどきますか




富士見で実験したけど
今回使ったリモコンでは、9mが限界って感じ
もっと、大きいLED使っているリモコンに切り替えたほうがいいかも
ジャンク屋行って探してこようかな

  


Posted by ハロ  at 12:04Comments(0)電子関係

2017年02月27日

16×32 みつけた

こんばんはー
ハロです

先日八潮にある秋月電子に行ってきました

そこで、不定期で500円袋というのがあるんです
まぁ年末に福袋あっておなじようなこともあるんですが

年末以外でやるっていうのはほんと不定期


さて、そこで入ってた基板とかって説明書とかがない場合が多くて
なにがなんだかわからないんですよね

今回は、16×32のLEDがあtったので
使ってみました




現在は販売が終了しているみたいです


んで、動きを加えてみます






もっと効率のいい動かし方を考えなくちゃ
電子パーツとかこういうのって、トライ&エラーが楽しいんですよね
コンパイルとかが通ったときは感動ですよ

んで、うごけばなおよし


  


Posted by ハロ  at 21:20Comments(0)電子関係

2017年02月22日

ブザーと富士見

おはようございます ハロです

先日の日曜日に、富士見に行ってきました
今回の主な目的は、ブザーを渡すってことですかね

ちょっと回ってみました
最近というか、ここ一年くらいは
富士見でしか撃ってないですが、イメトレとかしてるので


ブルズもシルエットもそんなに難しくないんですが
プレートがどうにもこうにも・・・orz

筋力がなくなっちゃってて
腕が上がらないんですよね
筋トレしなくちゃ!



さて、ブザーなんですが、無事渡したし
練習会で使ってるブザーをどうにかしようと思います


箱のシールを取る方法が分かったので、きれいに取れました


ブザーのスイッチが奥にあるので、押しにくいってことなので
下駄を履かせてみました
ちょっと、スイッチのほうが出てるので、非常に押しやすくなりました

あとは、ちょっとだけ省電力にしようとちょこちょこやってみたんで
どのくらい電池もつかなって



来週の26ですか
日曜日にまた同じところで練習会があるので、その時に持っていきます

  


Posted by ハロ  at 07:27Comments(0)娯楽電子関係

2017年02月12日

またつくるのか?

おはようございます ハロです

先日、秋月電子八潮店に行ってきました

今度から、月曜日と木曜日も営業日になって
なんと、火曜日と水曜日以外は毎日やるそうです!
これはありがたい



前回、ブザーとか作ってブレットボードとかなくなってきたので
買おう・・・と

ついでに、ブザーも買っておくか

そういえば、赤外線リモコンを作ったりしてるから受信モジュールいるよなぁ~
赤外線LEDもついでに買っておくか


あ。。。スイッチも買っておこうかな

可変抵抗器のつまみも買っておいた方がいいかな・・・

いやぁ~ついつい買いすぎちゃう


今度は、外部電源を使えるようにした方がいいjかな
それとも、リモコンつけて、自動復帰とか


ああぁそういえばライフルのムーバーつくるとかあったな


そのまえに、レール削るんだっけな忘れた



  


Posted by ハロ  at 09:04Comments(0)娯楽電子関係

2017年02月09日

ブザー回路の箱を見つけたぞ!

こんばんは!
ハロです

前回からあげます、ブザー回路なんですが
箱はなくていいかなって思ってたんですが

いろいろ100均のを回りまして
ダイソーにいいものを発見しました


クリップ!!
いいかなって思いましたが
ちょっと大きい



画鋲!
これは良さそうです


早速、しまってみました


そして箱を加工して



3つとも入れました



電池交換するときにちょっと箱を開けなくちゃならないし
可変抵抗器のつまみをとらなくちゃならんので
ちょっとめんどうかな

一番右側のは、つまみがすっきりしていたので
そのままとれるようにしていますがね

  


Posted by ハロ  at 21:01Comments(2)娯楽電子関係

2017年02月07日

ブザー量産ですよ!

おはようございます!
今日は、訳あっての休暇です


ブザーを量産してみました







あと、リモコンを使ってステッピングモータを制御してみようってことで
動画を撮ってみました
ブザーの話は5:26ぐらい


ブザーは3台作ってみました
箱がない状態なんですが、これで完成で

まぁ一台ぐらいは、箱にしまって渡したいかな





ストーブの件ですが
失敗しました

結構重い

動かそうとするとモータ自体が動いちゃう
なんとか違う方法を考えるか  


Posted by ハロ  at 09:52Comments(0)娯楽電子関係

2017年02月06日

みんなの意見でのブザー回路

こんいちは、ハロです

またブザーの話です

先日の富士見で、いろいろな意見を聞きまして

ちょっと改良してみました


良くしてるのか?改良なのか


さてさて


今回は、電源のスイッチを本来の使い方で使ってみて
ループで動くところは、ちょっと変えてみようと

スイッチ付き可変抵抗器が電源になっていて
そこからは、いつもと同じで
振り切って、右に回すと、ループって感じ




まずは、例のごとくの回路図


わかりにくいと思ったので、arduinoを外した状態でのも

スイッチの部分にLEDがありますが
スイッチにLEDが入っているタイプなんで気にしないでください



あとは、実物のを
こんな感じです
スイッチの部分わかります?
ちなみにアノードが左側です




はんだ付けをなるべく少なくして、スイッチ付き可変抵抗器だけ
ピンヘッダを6ピンつけてみました
それ以外は、電源部のところが2か所だけかな
なるべく少なく

あと、箱にしまうのは今回はやめました
いい箱が見つからないってことで
あとは、各自 箱を見つけてくださいってことで




あ・・・あと、ブレッドボードの下の部分


こんな感じで切っちゃいました
スイッチ付き可変抵抗器の邪魔なんでね
もともととれる場所なんで両面テープのところを切れば外れます


以下にプログラム



int sw0 = 6; //タクトスイッチの信号を読み込む
int sw1 = 0; //タクトスイッチの信号をしまう場所
int sw2 = 0; //監視用
int val = A5; //ボリュームを読み込むピン
int val1; //ボリュームの信号をしまう場所
int buza = 4; //ブザーの出力(2番)
int swled = 9; //スイッチのLED出力

void setup() {
pinMode(sw0, INPUT);
pinMode(val, INPUT);
pinMode(buza, OUTPUT);
pinMode(swled, OUTPUT);
Serial.begin(9600);
}
void loop() {
sw1 = digitalRead(sw0); //スイッチの信号を入れる
val1 = analogRead(val); //ボリュームの変化量を入れる
val1 = val1 * 6; //val1にしまった数値を6倍する(ここの倍数は変えていい)
Serial.println(val1);//シリアル通信でval1の数値を確認できる

if (val1>=6000) {//6000を超えてたら
delay(2000); //2秒待つ
buza1(); //buza1を呼び出す
}
else if (sw1 == HIGH) {//スイッチが押されたら
analogWrite(swled, 64); //swledを128の出力・・大体1.2vぐらい
sw2 = 1; //sw2の中に1を入れる
}
else if (sw1 == LOW && sw2 == 1) { //スイッチが離されて、sw2が1だったら
delay(val1); //スイッチからの待つ時間指定
buza1(); //buza1を呼び出す
digitalWrite(swled, LOW); //swledを消す
sw2 = 0;
}
}
void buza1() { //buzaの中身これを上で呼び出す
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
delay(2000);
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
}
  


Posted by ハロ  at 21:38Comments(5)娯楽電子関係

2017年01月28日

楽しみ

おはようございます

最近、忙しいのかわかりませんが
休みがない

土日も仕事だし、平日も、同時進行というのが当たり前になってきている
本当はダメなんじゃないかって思うんだが、今そうなっている

でも、楽しいこともある

まずは、明日は久しぶりの休みだ
3週間ぶりだろうか

とにかく、休みだ!
富士見にいく、APS撃ってるときが一番たのしいかな

さて、2月11日だが、錦糸町でAPSがある
去年はイベント等と重なって一度も参加できなかったが
今回も、またイベントと重なっている
今度は、警察署と連携事業なんだな

さてさて、まだ続く、2月23日には出前授業だ
それに向けて、準備している現在である



出前授業でどんなことやってるの?ってことで


1つ ブルブルカー
 振動子を用いた斜毛ロボット
   コンデンサとCDSとトランジスタといろいろ勉強できる
   滑りながら、動き 懐中電灯で操作することができるので人気

2つ ピカル君
 大学時代の電子回路の教科書を流し読みしてたら、積分回路と微分回路というものを見つけた
 あと、LMC555でワンショットトリガーで遊んでいて、単安定マルチバイブレータのほうがいいなってことで
 微分回路と単安定マルチバイブレータを使って自動点灯器を作ってみた
 
3つ 永久コマ
 なにか、ネタはないかとコマを紐で回し、遊んでいたときひらめいた
 永久的に回す方法はないのかと・・・調べるとでるはでるは、とりあえずリードスイッチが大量にあったので
 試作してみた、音もかっこいいし、これは面白い
 磁石や電磁石には無限の可能性を感じる


まだ3つぐらいしかない
もっと増やしていかなくては

でも、イベントの準備って大変だから、できるだけ当日だけで完成できるようなものがいいな
なにかないだろうか?


条件は以下の通り
電気がない場所があるので、使えるのは乾電池のみ
熱などでやげどの危険があるので、はんだ付けは使用不可
複数人が体験してほしいので、一人当たり、1時間程度で完成するもの
理科に関連する事柄
持ち帰れるもの
生活に役に立つもの、もしくは楽しいもの

条件が厳しくて、なかなか思いつかないのが現状

乾電池一本で1年半動く、LED点滅器も作ったが
上司に「これって何かの役に立つの?」と言われ・・・没

ゴム鉄砲を作ったが
「鉄砲系は危ないからダメ」・・・・没


なんにも思いつかないよ

はぁ~帰りたい
・・・と愚痴ってみる



  


Posted by ハロ  at 10:18Comments(0)娯楽電子関係

2017年01月16日

ブザー箱のその後

おはようございます

ハロです

う~ん
最近、心拍数がおかしい
98とか100ぐらい行く時があれば
60とか一気に下がってしまう

上がる分には、なにか疲労感があるが
下がってしまうと、とにかくつらい
意識が落ちそうになる


はぁ
疲れた


さて、ブザーの箱なんですが
あのあと、レゴブロックが入りそうだなってやったら入って

やっぱり電源のオンオフは外にあった方がいいよなってことで
こんな感じになりました



いつも思うけど、箱が一番大変なんですよね

  


Posted by ハロ  at 13:27Comments(0)電子関係

2017年01月15日

ブザーの箱

おはようございます?
おばんかたです

ハロです

ブザーの箱についてです

早速100均に行きまして
タッパーを物色していたんですが、全然なくて


あきらめていたら、文房具のところでペンケースを発見しました!

今回は、スイッチが直接ついているので、なるべく薄いやつがいいなっておもってたら
ドンピシャです



でも、ちょっと細長い
まぁ、ペンケースなので、開閉するところがあるので
そこからアクセスしやすいのはいいかな


ただ、スイッチが遠い
電源スイッチも遠い



ブザーは両面テープで固定しちゃいました
あんまりしっかり固定すると、ブザーが鳴らないんですよね




しかし、スイッチどうしようかな
なにか使えそうなものみつけるしかなさそうです
まぁ届かないことはないんですがね

  


Posted by ハロ  at 16:54Comments(3)電子関係

2017年01月14日

ブザーの回路図とプログラム補正

おはようございます

ハロです

先日挙げた回路図なんですが
ちょっとわかりずらいところがあったようなので
補間します

例のピンクの部分ですね

ブレッドボードは座標みたいに、端にアルファベットと数字があります
なんで、E15とE18を接続してください
前回挙げた回路にも、よく見ると数字が10刻みぐらいで書いてあるので
参考にしてください


実際に作った物の写真を挙げますね





電源部分のスイッチをブレッドボードに刺しておきました

あとは適当に箱にしまうだけですね



あと・・・・実際に作ってみてプログラムのミスがありました><
なんで、修正verを載せておきます


int sw0 = 4; //タクトスイッチの信号を読み込む
int sw1 = 0; //タクトスイッチの信号をしまう場所
int sw2 = 0; //監視用
int val = A7; //ボリュームを読み込むピン
int val1; //ボリュームの信号をしまう場所
int valsw = 9; //ボリュームのスイッチの信号
int valsw1; //ボリュームのスイッチの信号をしまう場所
int buza = 2; //ブザーの出力(2番)
int swled = 6; //スイッチのLED出力

void setup() {
pinMode(sw0, INPUT);
pinMode(val, INPUT);
pinMode(valsw1, INPUT);
pinMode(buza, OUTPUT);
pinMode(swled, OUTPUT);
Serial.begin(9600);
}
void loop() {

sw1 = digitalRead(sw0); //スイッチの信号を入れる
valsw1 = digitalRead(valsw); //ボリュームの信号を入れる
val1 = analogRead(val); //ボリュームの変化量を入れる
val1=val1*6;//val1にしまった数値を6倍する(ここの倍数は変えていい)
Serial.println(val1);//シリアル通信でval1の数値を確認できる

if (sw1 == LOW && valsw1 == LOW) {//スイッチなしでボリュームのスイッチが入ったら
delay(2000); //2秒待つ
buza1(); //buza1を呼び出す

}
else if (sw1 == HIGH && valsw1 == HIGH) {//スイッチが押されたら
analogWrite(swled, 128); //swledを128の出力・・大体1.2vぐらい
sw2 = 1; //sw2の中に1を入れる
}
else if (sw1 == LOW && sw2 == 1) { //スイッチが離されて、sw2が1だったら
delay(val1); //スイッチからの待つ時間指定
buza1(); //buza1を呼び出す
digitalWrite(swled, LOW); //swledを消す
sw2 = 0;
}
}
void buza1() { //buzaの中身これを上で呼び出す
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
delay(2000);
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
}


変更点は、通常使用時のdelayが入ってなくて
遅れて起動するってのができてませんでした


あと、電圧確認はやっぱ電力の無駄なのでつけませんでした
LED付スイッチは、左上のLEDのところを繋げれば大丈夫です


では、参考になれば!!
  


Posted by ハロ  at 10:19Comments(3)電子関係

2017年01月13日

ブザーの回路図とプログラム




まずは、回路図から行きます!
といっても、ブレッドボードなんですがね
arduinoのピンで、vinというピンがあります(右下)
ここに、9Vをつなげてます
そして基板の下のほうでも配線してます(ピンク色)
なんで、そこだけちょっと気を付けてください
あと、スイッチ付可変抵抗器のパーツがなかったので
スライドスイッチで代用しました、そこらへんはよく理解して配線してください


以下にプログラムを貼っておきます
arduinoのIDEをインストールして、張り付けてください
んで、「ctrl+t」を押すと、自動的にキレイに配置してくれます

あと、arduinoをamazonで購入すると互換機なので、インストールドライバーが通常と違います
なので、ココにアクセスしてCH341を入れてください







int sw0 = 4; //タクトスイッチの信号を読み込む
int sw1 = 0; //タクトスイッチの信号をしまう場所
int sw2 = 0; //監視用
int val = A7; //ボリュームを読み込むピン
int val1; //ボリュームの信号をしまう場所
int valsw = 9; //ボリュームのスイッチの信号
int valsw1; //ボリュームのスイッチの信号をしまう場所
int buza = 2; //ブザーの出力(2番)
int swled = 6; //スイッチのLED出力

void setup() {
pinMode(sw0, INPUT);
pinMode(val, INPUT);
pinMode(valsw1, INPUT);
pinMode(buza, OUTPUT);
pinMode(swled, OUTPUT);
}
void loop() {
sw1 = digitalRead(sw0); //スイッチの信号を入れる
valsw1 = digitalRead(valsw); //ボリュームの信号を入れる
val1 = analogRead(val); //ボリュームの変化量を入れる

if (sw1 == LOW && valsw1 == LOW) {//スイッチなしでボリュームのスイッチが入ったら
delay(2000); //2秒待つ
buza1(); //buza1を呼び出す

}
else if (sw1 == HIGH && valsw1 == HIGH) {//スイッチが押されたら
analogWrite(swled, 128); //swledを128の出力・・大体1.2vぐらい
sw2 = 1; //sw2の中に1を入れる
}
else if (sw1 == LOW && sw2 == 1) { //スイッチが離されて、sw2が1だったら
buza1(); //buza1を呼び出す
digitalWrite(swled, LOW); //swledを消す
sw2 = 0;
}
}
void buza1() { //buzaの中身これを上で呼び出す
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
delay(2000);
digitalWrite(buza, HIGH);
delay(1000);
digitalWrite(buza, LOW);
}












さて、可変抵抗器って言って見たり、ボリュームって言って見たり名称がブレブレなんですが
こんな感じです
どうしても、ブレッドボードに直接刺さらないのもあるんですが、そこらへんは・・・まぁ・・・なんとか・・・ね?


ではでは、作っていきましょうか!

  


Posted by ハロ  at 11:32Comments(3)電子関係

2017年01月13日

ブザーパーツリスト

プレート競技のブザーが思いのほか、ほしいという人がいるので

パーツリストとか回路図とか載せていきますね


前回も、同じような記事を載せたのですが、あの時より、いいパーツ見つけたのでそれで


ほとんどのパーツは秋月電子にて、揃います
あと、今回は、ハンダ付があると初心者とか大変そうなので
ブレッドボードで行きます




まずは、スイッチ

LED付きスイッチのほうがカッコイイかなって
別に、普通のタクトスイッチでもいいと思います
今回作ったのは、普通のタクトスイッチにしてみました

次は、ブザー
メカニカルブザーですね
電源を流すだけで、ブザーがなる便利なやつ
ただ、9V必要なんでちょっと大変、5Vでも動くけどね


端子を付けてみました。 端子をつけなくても、ブレッドボードに刺さりますがね


スイッチ付可変抵抗器





可変抵抗器のつまみ



電池残量を知るために(別にいらない)





npn型トランジスタ1815


006P(9V)の電池ケース

まぁスナップでもいいと思うんですが

トグルスイッチ

秋月電子に買いに行ったら、トグルスイッチが売ってなかったので
自分の持ってた適当なやつ
電源の切り替えスイッチなんで、適当でいいです



1kΩ(1/6w)
秋月で1パック100本入りで100円です




あとは、アマゾンで買えるもので
arduino nano




自分が買っている時は、320円ぐらいでしたが、現在ちょっと値段上がってますね
それと、運がいいと数日で届くみたいですが
だいたい2週間以上かかってから、届くことが多いです
(ピンがはんだ付けされていないので、自分でつけなくちゃいけません。もしピンがついていてほしい人はそれをamazonで探してみてください)



こんな感じでしょうか
あーーあと、USBケーブルでAタイプとBタイプミニのオスオスが必要です



んじゃ、次回は回路図とプログラムですね

  


Posted by ハロ  at 10:07Comments(0)電子関係

2017年01月08日

秋月電子福袋

おはようございます

連続投稿ですね

実は、富士見の練習会に今来てるんですよ


お昼食べて、休憩がてら更新しています


先日埼玉県の八潮にある
秋月電子に行ってきました

福袋とブザーのパーツを買いに行くためです

ブザーは2個ほど作ってほしいということなので、そのパーツを



あとは福袋なんですが、500円のお楽しみ袋などいろいろ


自分は3000円の福袋と500円のお楽しみ袋を購入

500円のほうは、ぐちゃぐちゃしたパーツ類が入っていて、
その日に買ってしまった
ピンヘッタなどなど、入っていてヤラレターって言ってみたり



3000円のほうは、非接触式の温度測定やオシロ付きテスターなど
ほしかったものが入っていたので、すごくうれしかった



ただ、E24系ではない抵抗などなど入っていて、使い道あるのか?・・・と



まぁ、3000円と考えてみれば安いし、良かったかな


来年も、買いに行きたいな


  


Posted by ハロ  at 13:30Comments(3)電子関係

2017年01月08日

IoTtってなんぞや

う~ん
昨今IoTが流行っています

なんで、自分も乗っかろう!ってことで
講習会があったので参加してきました


そして、完成したのがこちら



中身はこう・・・


100均のタッパーとリードスイッチを使いました
あとは、配線がめんどくさいのでブレットボードみたいなユニバーサル基盤で構成しました


これで、ドアを監視します


ドアが開閉されると、ツイッターなどにつぶやくようにしてみました

まぁ、今はやめてますが
昨日、同じパーツを買ってきました

なんで、たとえば、温度センサを取り付けて、一定時間ごとに
温度をツイッターやSNS系に投稿することができるってことで

これから、いろいろ遊べそうです

また、ネットからものを動かすのもできるので、面白そう

  


Posted by ハロ  at 13:04Comments(0)電子関係

2016年08月12日

sony vaio 直した

はぁ

あ・・・ハロです


いやぁ~今日は疲れました
ここ最近の車の移動距離がやばいですね
2日前に満タン入れたのに、もうないよ


さて、今から4年前かなSonyのvaioを買ったんですよ
12万か13万くらいで

当時としても、そうとうなスペックのノートPCだったんですけど
2年前くらいにHDDが壊れまして
そこから使ってませんでした。ちょうど職場でノートPCが配布されたので
あんまり不便に感じてませんでした


しかし、Fusion 360 という3DCADソフトを使うには64bitのPCではないと動作しないと
Fusion 360 は、使いやすいし、学校だと無料で利用可能ということなので
気になっていたのに・・・


ということで、直すことにしました


とりあえず、買ったところに持っていくと
Sonyに送って、そこで判断してみますってこと


んで、数週間後 連絡があり
37860円と・・・・べらぼうな値段!!
電話してくれた方はどうやらパソコンに詳しくないのか
それとも、教えてはいけないのか
内容については、教えてくれませんでした

自分の予想は、
1TBHDD が1万円
OS代が2万ちょっと
あとは、作業代

そんな感じかなって


まぁこんなお金あったら、新しいの買えちゃうってことで





自分でやってみることにしました
2.5インチのHDD(6000円)を買って
OSを入れて・・・・


あ・・・
できた



なんちゃことなかったです


結局かかったお金は6000円だけ
やっぱ、パソコン関係の修理とか設定とかってボッタクリの領域なんですよね
できない人は、頼むしかないのでね


そうそう、お金が思いのほかかからなかったので
タブレットPCを買いました

ASUS TransBook T100HA

つかいいい

前回のエプソンはUSBAタイプがないかったので
これはあるからいい感じ
そして、64bit!!

  


Posted by ハロ  at 17:52Comments(0)娯楽電子関係

2016年05月06日

リモコンを作る

おはようございます




今日は、リモコンを作ってみました

届く範囲が4~5mまでがマックスみたいで
プレート復帰とかに使えそうで使えない感じです



でも、なにかに使えそう

  


Posted by ハロ  at 11:33Comments(0)電子関係

2016年05月01日

遊ぶ

arduinoで遊んでみた








このGWはずっと仕事です

眠いです
疲れました



本当に疲れた

あ・・・5日は行きます
絶対行きます

南畑です


  


Posted by ハロ  at 09:08Comments(0)電子関係

2016年04月28日

arduino lcd 20×4

さぁ、2発目

今回のもアマゾンで見つけたもの

大きいです


とりあえずの、動作チェック




動作確認できたので、ちゃんと配線します




文字の表示位置などを調整してみました

プログラムは、動画中にあるのでそれで勘弁してしください
接続しているところは、プログラムを見て大体わかると思うのでいいでしょう


今回、コントラストの調整部分がPWMになっていて、かなりのちらつきがあります

この動画のあと、コントラストの調整を可変抵抗器に変更するとちらつきがなくなりました
ちょっと悔しい


まぁ、こんな感じででかい、lcdの使い方が分かった感じです




あとは、無線モジュールと角度センサなんだけど・・・

  


Posted by ハロ  at 07:52Comments(0)電子関係

2016年04月28日

arduino ステックコントローラー

おはようございます

今日は、アマゾンを歩いていると
スティックを発見したので、使って見る事にしました

まぁ、可変抵抗がついているので、それを10ビットで分解して
1024段階で見れるんだろうなって思ってました


ということで、早速測定して見る事に

以下動画




最近lcdシールドが使いやすくて、使ってます
パソコンの画面がなくても、表示できるっていいなぁって

でも、画面の文字が小さいんですよ
まぁ、これが普通って言われてしまえばそうなんですが



ちょっと大きくしてみました



  


Posted by ハロ  at 07:46Comments(0)電子関係

2016年04月21日

arduinoでターンテーブルを回す

こんばんは


ステッピングモータで角度指定して、動かすことができるかなってやってみました


なぜ、角度指定して、やりたいかっていうと
三角形のポスターをぐるぐる回したいってことだそうです
んで、きっかけは、手をたたいたら反応するようにしてくれって


とりあえず、前回参考にしたプログラムをいじって、
スイッチの入力が入ったときに、動くようにしてみました

そして、ターンテーブルにつけたんですが
どうも、回転速度が速くて、周波数が速くなってしまって
コイルに十分に電流が流れないって感じだったので
速度を落としてみました

また、マイクの感度が良すぎて、回転時のノイズを拾っているようだったので
感度をもう少し、悪くして
プログラムだけじゃなくて、可変
抵抗器でも調整できるようにしてみました





こんな感じでした

次は、なにしようか
  


Posted by ハロ  at 19:51Comments(0)電子関係

2016年04月16日

ステッピングモーター

おはようございます


ってもうこんな時間ですか

疲労感が半端ないですね
ここ2週間 4月始まってからの忙しさ

どんでもねぇ~

毎年のことなんですが、つらい



さて、今回はステッピングモータを動かしてみました

今回もアマゾンで買った、中国の物



200円代まで落ちてるとは・・・すごいな

将来的には、ギアなどを介して小型のアームロボットとか作ろうかと
最初サーボモータのほうがいいかなって思ったんですが
値段的にこっちのほうが安かったので


トルクも、まぁまぁありそうです



最近腕時計が壊れました
また修理に出したのですが、これを機にスマートウォッチ買おうかな
なにがいいのか・・・

Sonyが2012年に出したスマートウォッチ2よりいいものが出ればいいのだが

  


Posted by ハロ  at 14:59Comments(0)電子関係

2016年04月08日

arduinoで超音波距離センサ

おはようございます



今日は、arduinoで距離センサを使って見ました


超音波を使っており、人間の耳で聞こえない音を発射して
壁に当たってから跳ね返ってくるまでの時間を測定して距離を求めます


まぁいろんなところにサンプルが上がってるのでそれを見ながらやればできるかと思いますよ


でもまぁ~

自分が買ったのは、アマゾンで売っていた、中国製の激安超音波センサでした
このセンサがなぜだかわかりませんが、途中でフリーズしてしまい
それ以上測定できない現象が発生していました
電源を入れ直すとまた動作したので、これは、電源を定期的に入れ直す回路とプログラムいれないとだめなのかなって?
思ってたんですが


たぶん、発射したエコーが反射して戻ってこなかったときに、そのまま待機状態になってしまって
フリーズしてしまうんではないだろうかと思ったんですよ

なんで、一定時間かえって来なかったら、そのまま測定不能って感じにすればいいんじゃないか!

ということでの、動画でした

あとは首ふりを追加して、モータを制御してやれば、追跡ロボットみたいな感じでできるかな




あとは、加速度センサを買ったので、それを試してみようと思います
なんだか、アマゾンでarduino関係のパーツが激安でうってるんで
色々楽しめそうです



  


Posted by ハロ  at 08:20Comments(0)電子関係

2016年04月07日

arduinoでLCD

おはようございます
更新するときは、更新しまくるんですよ

さて、今回arduino用のLCDを購入したので実際に使って見ようかと思います



まずは、オーソドックスに
カタカナ表示と時間を表示する物を作ってみました





あと、下についているスイッチがどのようなどころにつながっているのかを調べていたら
なんとなく、A0につながってるなぁ~って思ったら
導通テスターの針が揺れたんで
もしかして!って思って作ったのが下の動画です





んで、どうも、表示が見ずらいなって思ったので、キレイにしてみました






そんな感じで、LCDでした
次回は、超音波距離センサです


  


Posted by ハロ  at 08:14Comments(0)電子関係

2016年03月23日

ブザーの回路図3

なんで、こんなにひっぱってるんだよ


さて、前回アップした回路図がちょっと見ずらいので



修正しました
前回の回路図でも大丈夫なんですが、なんだかラインが気持ち悪いので直し



しかし、このソフト使いやすいね

前使ってたやつより、すんごく使いやすい

ということで、今度からこのソフトを使おう

fritzing

このソフトでした
  


Posted by ハロ  at 08:16Comments(0)電子関係

2016年03月22日

やっぱスイッチ

こんばんは、ブザーなんですが


やっぱり電源スイッチあったほうがいいかなって
スイッチを追加しました



それと、電圧計を006pの電圧を計るようにしました

ブザーを作動させると電圧が下がる下がる

これでいじるところはないかな
  


Posted by ハロ  at 19:47Comments(0)電子関係

2016年03月22日

ブザーの回路図2

こんばんは

なんやかんやで、使い方がわかってきました


つか、もうこんな時間かw



まだ、きれいにできそうですが、まぁいいでしょう

回路図です








間違いとかありそうでけど・・・

  


Posted by ハロ  at 19:35Comments(0)電子関係

2016年03月22日

ブザーの回路図

こんにちは

ハロです


今日は、ブザーの回路図を公開しようと思ってたんですが

なんだか、しっちゃかめっちゃかなので

Fritzingってソフトを使って、書こうとやってみたんですが

たしかに、前使っていたものより使いやすいんですが
まだ、使い方が分からず、とりあえず、こんな感じになりました




3端子レギュレーターは7805を使用しています
コンデンサは、一般的な接続方法でよろしいかと


LED付きタクトスイッチがなかったので、LEDと別個に用意しました
スイッチ付可変抵抗器もなかったので、スイッチと可変抵抗を別個にしました



さて、こんな感じでよろしいでしょうか?
なにかわからない点がありましたら教えてください







  


Posted by ハロ  at 17:38Comments(0)電子関係

2016年03月19日

ブザーのプログラム

こんにちは

先日、作ったブザーの回路図とプログラムを記事にしようと
回路図をどうするかなって・・・

とりあえず、部品表を作って・・・
部品名規格個数
arduino HiLetgo Pro Mini TMEGA328P 5V 16MHz 1個
3端子レギュレーター 7805 1個
スイッチ付き可変抵抗器 P-07212(秋月通販コード) 1個
006p電池ボックス P-02674(秋月通販コード) 1個
積層セラミックコンデンサ10μF P-05103(秋月通販コード) 1個
積層セラミックコンデンサ0.1μF P-00090(秋月通販コード) 1個
トランジスタ2SC1815GR I-00881(秋月通販コード) 1個
LED付き押しボタンスイッチ P-02009(秋月通販コード) 1個
炭素被膜抵抗(1kΩ) R-16102(秋月通販コード) 2個
メカニカルブザー P-00160(秋月通販コード) 1個

回路図、どうしよう
arduinoの回路書くソフトあるみたい
回路図は、あとでいいか


使ってるarduinoはこれ




アマゾンで買える
HiLetgo Pro Mini ATMEGA328P 5V 16MHz

んで、これだけだと書き込めないので
おなじ、アマゾンで
Arduino ミニ3.3V 5.5V FTDI232用の FT232RL FTDI USB-TTLシリアル アダプタ モジュール

を買うと、書き込めるようになります


回路図は、あとで記事で書きますよ



以下がプログラムになります





int ledsw=4;
int sw0=2;
int vsw=3;
int buza=10;
int sw1;
int cut0;
int valvcc=A0;
int valpin=A1;
int val=0;
int valswv=12;
int valswin=11;
int sw2;
void setup(){
pinMode(buza,OUTPUT);
pinMode(ledsw,OUTPUT);
pinMode(vsw,OUTPUT);
pinMode(valvcc,OUTPUT);
pinMode(sw0,INPUT);
pinMode(valswv,OUTPUT);
pinMode(valswin,INPUT);
Serial.begin(9600);
}

void loop(){
digitalWrite(vsw,HIGH);
digitalWrite(ledsw,LOW);
digitalWrite(valswv,HIGH);
analogWrite(valvcc,255);
analogWrite(A2,0);
sw1 = digitalRead(sw0);
val=analogRead(valpin)*6;
sw2 = digitalRead(valswin);
Serial.println(val);
delay(1);
if(sw1==HIGH){

digitalWrite(13,HIGH);
cut0=1;
}
else if(sw1==LOW && cut0==1 ){
digitalWrite(buza,LOW);
delay(val);

digitalWrite(buza,HIGH);
digitalWrite(ledsw,HIGH);
delay(1000);

digitalWrite(buza,LOW);
digitalWrite(ledsw,HIGH);
delay(2000);

digitalWrite(buza,HIGH);
digitalWrite(ledsw,HIGH);
delay(1000);
digitalWrite(13,LOW);

digitalWrite(buza,LOW);
digitalWrite(ledsw,LOW);
delay(1000);
cut0=0;

}
else if(sw2==LOW){
digitalWrite(buza,HIGH);
digitalWrite(ledsw,HIGH);
delay(1000);

digitalWrite(buza,LOW);
digitalWrite(ledsw,HIGH);
delay(2000);

digitalWrite(buza,HIGH);
digitalWrite(ledsw,HIGH);
delay(1000);
digitalWrite(13,LOW);

digitalWrite(buza,LOW);
digitalWrite(ledsw,HIGH);
delay(2000);
}
}



  


Posted by ハロ  at 16:03Comments(2)電子関係

プロフィール
ハロ
ハロ
スピードシューティング・APS・FPSをこよなく愛するハロです。
主にAPSを本腰で挑戦中
/"ハンドガン"/   
<フリー>
公式186-4×
練習会191-3×
練習200-3×
<オープン>
公式190-5×
練習会 186-5×
練習196-6×
/"ライフル"/
<フリー>
公式 121-2×
練習会160-3×
練習
<オープン>
公式 134-3×
/"取得バッチ"/
ハンドガン
グランドマスター
ライフル
シャープシューター
< 2024年04月 >
S M T W T F S
  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        
QRコード
QRCODE
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 10人
過去記事
アクセスカウンタ
↑LO↑ ↑たぬきそふと↑ たぬきそふと PCゲーム『少女教育』を応援中!

放浪息子