Apr 202013
 

Unten findet Ihr einen kleinen Quellcode zum Steuern eurer PWMs mit den “+” und “-“ Tasten auf eurer Tastatur:IMG_0591

//Quellcode:

//ersten 2 LEDs auf dem Board auslassen!!!
//”a”    Abbruch des Programms
//”+”    PWM++
//”-“    PWM–

#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <termios.h>    //Tasten ohne Return einlesen
#include <unistd.h>

//DEFINES
#define BUTTON1 0
#define BUTTON2 1
#define BUTTON3 2
#define BUTTON4 3
#define LED_AUS 0
#define LED_AN 1
#define LED1 0
#define LED2 1
#define LED3 2
#define LED4 3
#define LED5 4
#define LED6 5
#define LED7 6
#define LED8 7
#define PWM0 0
#define PWM1 10
#define PWM2 20
#define PWM3 30
#define PWM4 40
#define PWM5 50
#define PWM6 60
#define PWM7 70
#define PWM8 80
#define PWM9 90
#define PWM10 100
#define PWM_STEP 10

int main (void)
{
struct termios alt,neu;    //Zeichen einlesen
int i, ipwm_wert=0;
char ch=0;
printf(“PWM\n”) ;

if (wiringPiSetupPiFace()== -1)
exit(1);

for (i=LED1;i<=LED8;++i)
softPwmCreate(i,PWM0,PWM10);

//alles auf 0 setzen
for(i=LED1;i<=LED8;i++);
softPwmWrite(i,PWM0);
printf(“LEDs sind aus\n”);
delay(100);

//a=abbruch des Programms, ansonsten hängt sich Konsole auf (SSH vom MAC)
while(ch!=’a’)
{
//Zeichen direkt einlesen
tcgetattr(fileno(stdin),&alt);
neu=alt;
neu.c_lflag &= ~ICANON;
neu.c_lflag &= ~ECHO;
tcsetattr(fileno(stdin),TCSANOW,&neu);
ch=getc(stdin);
tcsetattr(fileno(stdin),TCSANOW,&alt);

if(ch==’+’)
{
ipwm_wert=ipwm_wert+PWM_STEP;
if(ipwm_wert>=100)
ipwm_wert=100;
for(i=LED3;i<=LED8;i++)
softPwmWrite(i,ipwm_wert);
}
if(ch==’-‘)
{
ipwm_wert=ipwm_wert-PWM_STEP;
if(ipwm_wert<0)
ipwm_wert=0;
for(i=LED3;i<=LED8;i++)
softPwmWrite(i,ipwm_wert);
}
printf(“PWM WERT: %i\n”,ipwm_wert);
}

//meldung beim Programmabbruch
printf(“Programm wurde abgebrochen!\nNeubespielung möglich…\n\n”);

return 0 ;
}

 Posted by at 11:30 am
Optimization WordPress Plugins & Solutions by W3 EDGE