Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ATTINY13
- +Vcc-----------1-| |-8--Vcc
- PB3 = IN_PIN--2-| |-7--NC
- PB4 = BUZZER--3-| |-6--OUT_PIN = PB1
- Gnd--4-| |-5--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 PB3
- #define OUTPIN PB1
- #define BUZPIN PB4
- #define IN_HIGH (PINB & (1<<INPIN)) != 0
- unsigned long waitPoint=0;
- const uint16_t max_on = 65535;
- void setup() {
- DDRB &=~(1 << INPIN); // input
- DDRB |= (1 << OUTPIN); // output
- DDRB |= (1 << BUZPIN); // output
- _beep(2);
- if(IN_HIGH) {
- waitPoint = millis();
- } else {
- PORTB |= (1<<BUZPIN); delay(1500);
- PORTB &= ~(1<<BUZPIN);
- waitPoint = millis() - 50000;
- }
- }
- void loop() {
- while(!IN_HIGH && (millis() - waitPoint) < max_on ) kedip();
- tunggu(IN_HIGH);
- _beep(1);
- waitPoint = millis();
- };
- void tunggu(uint16_t x) {
- if(!x) { // kalo timeout msh on
- // _beep(1);
- PORTB |= (1<<BUZPIN); delay(1500);
- PORTB &= ~(1<<BUZPIN);
- }
- // masih off/on
- while(IN_HIGH==x) delay(200);
- };
- void kedip(void) {
- PORTB |= (1<<OUTPIN); delay(550);
- PORTB &= ~(1<<OUTPIN); delay(500);
- PORTB |= (1<<OUTPIN); delay(350);
- PORTB &= ~(1<<OUTPIN); delay(350);
- PORTB |= (1<<OUTPIN); delay(350);
- PORTB &= ~(1<<OUTPIN); delay(550);
- };
- void _beep(byte x) {
- for(byte i=0;i<x;i++) {
- PORTB |= (1<<BUZPIN); delay(250);
- PORTB &= ~(1<<BUZPIN); delay(200);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement