Linux #4 2019 - Simuleer een kruispunt listing

#include <stdio.h>

#include <pigpio.h>

#include <stdlib.h>

 

void start_traffic_light() {

    printf("Button for traffic is pushed.\n");

    time_sleep(0.5);

    printf("Letting traffic pass.\n");

    gpioWrite(15,0);

    gpioWrite(21,1);

    time_sleep(3.0);

    gpioWrite(21,0);

    gpioWrite(20,1);

    time_sleep(1.5);

    gpioWrite(20,0);

    gpioWrite(21,0);

    gpioWrite(15,1);

}

 

void shutdown_traffic_light() {

    printf("Shutting down traffic light.\n");

    gpioWrite(15,0);

    gpioTerminate();

    time_sleep(0.5);

    exit(0);

}

 

int main() {

    

    int o,q;

 

    if (gpioInitialise() < 0) {

        printf("Gpio initialisation failed\n");

        return 1;

    }

 

    if (gpioRead(15) == 0)

        gpioWrite(15,1);

 

    gpioSetMode(12, PI_INPUT);

    gpioSetPullUpDown(12, PI_PUD_UP);

    gpioSetMode(14, PI_INPUT);

    gpioSetPullUpDown(14, PI_PUD_UP);

    gpioSetMode(15, PI_OUTPUT);

    gpioSetMode(20, PI_OUTPUT);

    gpioSetMode(21, PI_OUTPUT);

  

    printf("\tTraffic light is operational.\n\n");

 

    while(1) {

        o = gpioRead(14);

        q = gpioRead(12);

    

        if (o == 0)

            start_traffic_light();

 

        if (q == 0)

            shutdown_traffic_light();

  }

}

 

NEDLINUX FORUM

Het nederlandse linuxforum
Voor beginners en pro’s

 

 

 

 

 

E-mailadres



 

 

Nieuwste editie:

Linuxmag op Facebook

@linuxmagnl op Twitter

linuxmagNL Wil je meer uit je computer, smartphone, software, Raspberry Pi of thuisnetwerk halen, maar weet je niet waar en ho… https://t.co/wauqDUzUty
linuxmagNL 28 feiten over Linux... Wist je bijvoorbeeld dat Tux een tijdje geen officiële mascotte was? Hij werd vervangen doo… https://t.co/GEc4YKKHsx
linuxmagNL De bedenker van Linux was een tijdje van de radar, maar hij is weer terug... Wat was er aan de hand?… https://t.co/6deZZY1Koz