Raspberry Pi 備忘録 / Mbedもあるよ!

Raspberry Pi であれこれやった事の記録

ニキシー管 IN-12B - その2

つぎは、ドライバを使ってみる

関連記事 pongsuke.hatenablog.com

制御成功の写真

Raspbery pi からドライバを制御し、3と9を交互に表示させました。

f:id:pongsuke:20190402171754j:plain f:id:pongsuke:20190402171758j:plain

K155ID1

SN74141 互換ということなので SN74141 でデータシートを探した。

電圧について

動作電圧Vcc 4.75v ~ 5.25v

VIH High-level input Min 2v
VIL Low-level input Max 0.8v

ということなので、Vcc に Raspberry pi の 5v を流し、VIH,VIL には、GPIOの3.3v を流したり止めたりすればOK。

f:id:pongsuke:20190402153152p:plain

ものすごく当たり前のことなのだけど、16本も配線しないといけない。
なんてこった。。。

面倒なので、制御用の A-D と、適当に2箇所だけGND接続することにした。

f:id:pongsuke:20190402154026p:plain

A-D に High, Low を設定することで、 0-9 の設定になる模様。
その組み合わせが上記。

配線

Raspberry pi K155ID1 ニキシー 電源
5v VCC
GND GND GND
GPIO 12 A
GPIO 16 B
GPIO 20 C
GPIO 21 D
1 180v
0 3
1 9
2

以下略

f:id:pongsuke:20190402174321j:plain f:id:pongsuke:20190402174330j:plain f:id:pongsuke:20190402174334j:plain

※注意 鰐口?で配線したため、距離を取るために、3と9を0と1につないでいます。
ほかは結線していないので、光りません。

コーディング

とりあえず、プログラムで光ればいいやーということで、GPIO直接書くような感じです。 ダサいです。

# -*- coding: utf-8 -*-

import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(20, GPIO.OUT)
GPIO.setup(21, GPIO.OUT)
time.sleep(0.1)

GPIO.output(12, GPIO.LOW)
GPIO.output(16, GPIO.LOW)
GPIO.output(20, GPIO.LOW)
GPIO.output(21, GPIO.LOW)
time.sleep(1)
~                                                                                                                    
GPIO.output(12, GPIO.HIGH)                                                                                           
time.sleep(2)                                                                                                        
GPIO.output(12, GPIO.LOW)                                                                                            
time.sleep(2)                                                                                                        
GPIO.output(12, GPIO.HIGH)                                                                                           
time.sleep(2)                                                                                                        
GPIO.output(12, GPIO.LOW)                                                                                            
time.sleep(2)                                                                                                        
~                                                                                                                    
GPIO.cleanup()