Skip to content

Instantly share code, notes, and snippets.

@itrobotics
Last active June 7, 2018 16:33
Show Gist options
  • Save itrobotics/c02e1f0d666af2bc3b72934476415f63 to your computer and use it in GitHub Desktop.
Save itrobotics/c02e1f0d666af2bc3b72934476415f63 to your computer and use it in GitHub Desktop.
#include <bcm2835.h>
#include <stdio.h>
#define LED1 5
#define LED2 6
#define LED3 13
#define LED4 26
#define LED5 12
#define COM 22
#define RELAY 27
#define PWM0 18
#define PWM1 19
#define IR_TX 25
#define IR_RX 17
#define DIP1 20
#define DIP2 21
#define BUTTON1 24
#define BUTTON2 23
#define BUZZER 16
int main(int argc, char **argv)
{
int i;
int value1,value2,value3,value4;
int led_array[]={LED2,LED4,LED3,LED5};
int n=sizeof(led_array)/sizeof(led_array[0]);
if (!bcm2835_init())
return 1;
// Set the p5in to be an output
bcm2835_gpio_fsel(COM, BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_write(COM, HIGH);
bcm2835_gpio_fsel(LED1, BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_fsel(BUZZER, BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_write(BUZZER, LOW);
//DIP. button setup as input
bcm2835_gpio_fsel(DIP1, BCM2835_GPIO_FSEL_INPT);
bcm2835_gpio_fsel(DIP2, BCM2835_GPIO_FSEL_INPT);
bcm2835_gpio_fsel(BUTTON1, BCM2835_GPIO_FSEL_INPT);
bcm2835_gpio_fsel(BUTTON2, BCM2835_GPIO_FSEL_INPT);
for (i=0;i<n;i++) {
bcm2835_gpio_fsel(led_array[i], BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_write(led_array[i], LOW);
}
i=0;
// Blink
while (1)
{
value1= bcm2835_gpio_lev(DIP1);
value2= bcm2835_gpio_lev(DIP2);
value3= bcm2835_gpio_lev(BUTTON1);
value4= bcm2835_gpio_lev(BUTTON2);
printf("DIP1=%d,DIP2=%d,BUTTON1=%d,BUTTON2=%d\n", value1,value2,value3,value4);
// led blinking
bcm2835_gpio_write(led_array[i], HIGH);
bcm2835_delay(100);
bcm2835_gpio_write(led_array[i], LOW);
i=(i+1)%n;
//check led1
if (value1==0 && value2==0)
bcm2835_gpio_write(LED1, HIGH);
else
bcm2835_gpio_write(LED1, LOW);
//check buzzer
if (value3==0 && value4==0)
bcm2835_gpio_write(BUZZER, HIGH);
else
bcm2835_gpio_write(BUZZER, LOW);
bcm2835_delay(100);
}
bcm2835_close();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment