|
BasicStamp(U)が好きだ このコーナーは本当に有意義に観てくれる人がいるのか疑問です。もし1通でもおメールを頂けたらもっとちゃんと作ろうと(結線図等)思います。宜しくお願いします。自分は学校等で電子及びコンピュータの専門教育を受けたことがありません。ですからこれから書くことは知識あるあなた様から見れば「なにすっとんきょーなこと書いてんだ」と、感じられることが多々あるものと思います。その際はどうぞ慈悲の心で寛容なるご容赦と、是非その部分を教えてください。 LCD16桁*2行表示 概要:BasicStampUでLCDを使ってみました。
結線:以下、「Pin No.」−「LCDの端子記号」−「LCDの端子No.」の順番で記します。 0−DB0−81−DB1−7 2−DB2−6 3−DB3−5 4−DB4−4 5−DB5−3 6−DB6−2 7−DB7−1 8− E−9 9− RS−11 GND−R/W−10 GND−Vss−13 +5V−Vdd−14 +5V−「10KΩ半固定抵抗」−Vlc−12:10KΩ半固定抵抗で液晶のコントラストを調整します サンプルプログラム:画面に0.1秒おきに「ABC…」と表示するプログラムを作ってみました。 'Yoshi LCD controler 'Shoki shokiE CON 8 RS CON 9 CHAR VAR BYTE KETA VAR BYTE 'LCD Shoki OUTS=0 DIRS = %0000001111111111 'SET TO IN/OUT PINS PAUSE 200 OUTL=%00110000 'set to 8bit operation PULSOUT E,1 PAUSE 10 PULSOUT E,1 PAUSE 10 PULSOUT E,1 PAUSE 10 OUTL=%00111000 'set to function PULSOUT E,1 PULSOUT E,1 OUTL=%00001110 'set to disp/cursor PULSOUT E,1 OUTL=%00000110 'set to cursor shift PULSOUT E,1 HIGH RS MAIN: PAUSE 100 CHAR = CHAR MIN 32 KETA = CHAR // 32 GOSUB WR_LCD CHAR = CHAR + 1 IF KETA = 16 THEN RETDOWN IF KETA = 0 THEN CLEAR GOTO MAIN WR_LCD: 'LCD WRITER OUTL=CHAR PULSOUT E,1 RETURN RETDOWN: 'CHANGE COLUM LOW RS OUTL = %11000000 PULSOUT E,1 HIGH RS GOTO MAIN CLEAR: 'CLS DISP PAUSE 1000 LOW RS OUTL = %00000001 PULSOUT E,1 HIGH RS GOTO MAIN LCD16桁*2行表示あとがき 最初はこれをBS1でせっせと作っていたのですが、ファンクションセットの時,4ビット動作に設定するとLCDの上の行しか表示されませんでした。
16キー入力 概要:BasicStampUで16キー入力デバイスを作ってみました。
使用した16キー:下の写真の物。メーカー不明(秋葉原のガード下2階の一番大通り寄りの店で購入) 結線:BSUのPin No.0-3を横4段下から0-3、Pin No.4-7を縦4列左から接続します。各4-7ピンから10kΩの抵抗をGNDに接続します。 ![]() キー入力プログラム: DIRL = %00001111 Colom var byte Row var byte key var byte FOR Row = 4 TO 7 INPUT Row NEXT key16: Colom = 0 Row = 0 KEY16_SCAN: HIGH Colom Row = NCD(INB) IF Row <> 0 THEN PUSHED LOW Colom Colom = Colom + 1 IF Colom < 4 THEN KEY16_SCAN GOTO KEY16 PUSHED: KEY = Colom * 4 + Row - 1 DEBUG DEC(Colom),TAB,DEC(Row),TAB,DEC(KEY),CR LOW Colom PAUSE 500 GOTO KEY16 メーターパルス入力 概要:パルス出力する流量メーターから信号を拾って総流量積算、バルブ制御をします。 使用したメーター:ND20愛知時計電機 管材屋で購入接続: 結線図 ![]() オペレーション: スタートボタンを押すとPin12がHighになって、リレー等を駆動し配管の弁を開放します。 被測量体(水)が流れ出しメーターがパルスを発します。 積算値が設定値になると、Pin12がLowになって弁を閉鎖します。 測量中にキャンセルボタンを押すとPin12がLowになって弁を閉鎖します。 このメーターは 25cc/パルス です。 プログラム output 12:valve_control var out12input 13:blow_start var in13 input 14:blow_cancel var in14 input 15:input_meter_pulse var in15 setteichi var word so_pulse var word gen_pulse var word zen_pulse var bit setteichi = 250 Main: if blow_start = 1 then meter_count_start goto main meter_count_start: gen_pulse = 0 zen_pulse = 0 so_pulse = setteichi / 25 high 12 'valve open meter_count: if blow_cancel = 1 then meter_count_end 'blow cancel if input_meter_pulse > zen_pulse then pulse_on 'pulse.off-on zen_pulse = input_meter_pulse 'record scaned pulse goto meter_count: pulse_on: zen_pulse = 1 'record scaned pulse gen_pulse = gen_pulse + 1 'count up if gen_pulse = so_pulse then meter_count_end goto meter_count: meter_count_end: low 12'Valve close goto main: 配管注意: 後書き: |