Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ATTINY13/85
- +Vcc-----------1-| |-8--Vcc
- NC - PB3--2-| |-7--PB2 = BUZZER
- OUT_PIN = PB4--3-| |-6--PB1 = IN_PIN
- Gnd--4-| |-5--PB0 - NC
- (PCINT5/RESET/ADC0/dW) PB5---1-| |-8---VCC
- (PCINT3/CLKI/ADC3) PB3---2-| |-7---PB2 (SCK/ADC1/T0/PCINT2)
- (PCINT4/ADC2) PB4---3-| |-6---PB1 (MISO/AIN1/OC0B/INT0/PCINT1)
- GND---4-| |-5---PB0 (MOSI/AIN0/OC0A/PCINT0)
- */
- #define INPIN PB1
- #define OUTPIN PB4
- #define BUZPIN PB2
- #define IN_HIGH (PINB & (1<<INPIN))
- #define NYALA PORTB |= (1<<OUTPIN)
- #define MATI PORTB &= ~(1<<OUTPIN)
- unsigned long waitPoint=0;
- const unsigned long max_on = 65535;
- void setup() {
- DDRB &=~(1 << INPIN); // input
- DDRB |= (1 << OUTPIN); // output
- DDRB |= (1 << BUZPIN); // output
- MATI;
- _beep(2);
- if(IN_HIGH) {
- waitPoint = millis();
- } else {
- PORTB |= (1<<BUZPIN); delay(500);
- PORTB &= ~(1<<BUZPIN);
- waitPoint = millis() - 50000;
- }
- }
- void loop() {
- while(!IN_HIGH && (millis() - waitPoint) < max_on ) kedip();
- tunggu(IN_HIGH);
- waitPoint = millis();
- };
- void tunggu(byte x) {
- byte old_x = x;
- if(!x) { // kalo timeout msh on
- PORTB |= (1<<BUZPIN); delay(500);
- PORTB &= ~(1<<BUZPIN);
- }
- // masih off/on
- while(IN_HIGH==x) delay(200);
- if(old_x) _beep(1);
- };
- void kedip(void) {
- NYALA; delay(500);
- MATI ; delay(450);
- NYALA; delay(350);
- MATI ; delay(350);
- NYALA; delay(350);
- MATI ; delay(450);
- };
- void _beep(byte x) {
- for(byte i=0;i<x;i++) {
- PORTB |= (1<<BUZPIN); delay(75);
- PORTB &= ~(1<<BUZPIN); delay(75);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement