電光掲示板をAVRで置き換え
デジタル電光掲示板はPICの16f84を使っていましたが、 AVRのATtiny2313で置き換えました。 これでどのPCでも書き込めるようになります。 しかも、低価格なため、生徒が思う存分、試行錯誤できます。 マイコンは電源供給を誤るとすぐに壊れてしまうのです。
光っているところ
#include <avr/io.h> #include <avr/delay.h> void delay_ms(t) { while (t--) _delay_ms(0.13); } void delay_us(t) { int tt; tt = 8*t/100; while (tt--) _delay_us(1); } void line1(int a,int b,int c,int d, int e){ PORTD = 0b00000001; PORTB = a+b*2+c*4+d*8+e*16; delay_ms(1); } void line2(int a,int b,int c,int d, int e){ PORTD = 0b00000010; PORTB = a+b*2+c*4+d*8+e*16; delay_ms(1); } void line3(int a,int b,int c,int d, int e){ PORTD = 0b00000100; PORTB = a+b*2+c*4+d*8+e*16; delay_ms(1); } void line4(int a,int b,int c,int d, int e){ PORTD = 0b00001000; PORTB = a+b*2+c*4+d*8+e*16; delay_ms(1); } void line5(int a,int b,int c,int d, int e){ PORTD = 0b00010000; PORTB = a+b*2+c*4+d*8+e*16; delay_ms(1); } int main(void) { int i; DDRB = 0b00011111; DDRD = 0b00011111; while(1){ for(i=0;i<100;i++){ line1(0,1,1,0,0); line2(0,0,1,0,0); line3(0,0,1,0,0); line4(0,0,1,0,0); line5(0,0,1,0,0); } } }夏休みものづくり講座の4日連続コースはもうすぐです。 お楽しみに。