HOME > キッチンタイマー

 キッチンタイマー 

ちょっとしたPICの演習,公開講座,体験学習用にPIC12F629 を使ったキッチンタイマーを 作りました.パーツは,
ブレッドボード,電池・電池ボックス・電池スナップ, PIC12F629,LED,圧電ブザー,スイッチ,抵抗1kと10kΩ です.
出来上がりはこんな感じ.

DSC01807.JPG

動作は, スイッチを押した回数で秒数設定.
スイッチを1回押すと10秒.(2回で20秒,・・・)

秒数設定後,2秒以上待つとLEDが早く点滅してスタート準備完了.
スイッチを押すとカウントを開始.
指定秒数経ったらブザーがなる.
スイッチでブザー停止,初期状態に戻る.

手書き回路図↓

DSC01814.JPG

プログラムリスト

#include "pic.h"
#include "delay.h"
#define TRIM 80 						// trimming for delay time to 100us
__CONFIG(INTIO & WDTDIS & BORDIS & MCLRDIS);

main(){
	// initialize
	unsigned long cnt, i;				// cnt: counter, i: etc
	unsigned char f;					// flag for the end of set process 
	TRIS0=0;							// LED: GPIO0 for digital output 
	TRIS1=0;							// BUZZ: GPIO1 for digital output 
	TRIS2=1;							// SW: GPIO2 for digital input 
	CMCON=0x07;

	while (1){

		// reset LED, BUZZ and counter
		GPIO0=1; 						// LED OFF
		GPIO1=0; 						// BUZZ OFF
		cnt=0;							// reset counter
		
		// set process
		f=0;							// count start flag
		while (!f){
			while (GPIO2);				// wait for SW-ON
			GPIO0=0;					// LED ON			
			cnt+=10;					// 10 sec plus
			DelayUs(TRIM);				// chattering off
			while (!GPIO2);				// wait for SW-OFF
			GPIO0=1;					// LED OFF
			DelayUs(TRIM);
			
			i=0; 
			while (GPIO2){				// count interval while SW-OFF
				DelayUs(TRIM);
				i++;
				if (i>20000){
					f=1;
					break;
				}
			}	
		}

		// wait for start-SW			
		while (GPIO2){					// wait for SW-ON
			GPIO0=0;					// LED ON
			for (i=0;i<500;i++) DelayUs(TRIM);						
			GPIO0=1;					// LED ON
			for (i=0;i<500;i++) DelayUs(TRIM);	
		}

		// count down process
		while (cnt>0){					// count down cnt
			GPIO0=1;					// LED OFF
			for (i=0;i<5000;i++) {
				DelayUs(TRIM);
			}
			GPIO0=0;					// LED OFF
			for (i=0;i<5000;i++) {
				DelayUs(TRIM);
			}
			cnt--;	
		}

		// Timeout, BUZZ and LED ON	
		while (GPIO2){					// wait for stop
			GPIO0=0;					// LED ON
			GPIO1=1;					// BUZZ ON
			for (i=0;i<10;i++) DelayUs(TRIM);						
			GPIO1=0;					// BUZZ OFF
			for (i=0;i<10;i++) DelayUs(TRIM);	
		}
		DelayUs(TRIM);				// chattering off
		while (!GPIO2);				// wait for SW-OFF		
	}
}


プログラムリストほか,MPLABプロジェクトファイルのダウンロード.

これを1クラス分,42個書込んで準備.

DSC01810.JPG


C言語ではじめるPICマイコン

やさしいPICマイコン電子工作パソコンとつないで遊ぼう

< 前の記事へ次の記事へ >


ページトップに戻る



ESP32 Wifi Bluetooth開発ボード

Arduino Nano Every
​​
Raspberry Pi pico

FPGA XILINX Artix-7