Page
Stránky / Súčiastky ku Arduinu / 74HC595 Posuvný register /
Spomenul som, že je možné pomocou PWM ovládať jas diód. Na to je potrebná iba drobná modifikácia. Prepojte digitálny pin 6 a OE na 74HC595 (v predchádzajúcich programoch bol pripojený na GND, aby bol výstup trvale povolený). A na pin 6 budeme posielať hodnoty 0-255. To zabezpečí, že bude podľa hodnoty nastavená intenzita svetla.
OE sa nastavuje negatívne, takže:
Pustite si program hc595_spi_pwm.ino, aby ste si mohli pozrieť ukážku.
char p4[]={
0b00000000,
0b00000001,
0b00000011,
0b00000111,
0b00001111,
0b00011111,
0b00111111,
0b01111111,
0b11111111,
0b01111111,
0b00111111,
0b00011111,
0b00001111,
0b00000111,
0b00000011,
0b00000001,
};
void play(char *p,int poc, int repeat, int dela)
{
while(repeat)
{
for (int i = 0; i < poc; i++) {
// take the latchPin low so
// the LEDs don't change while you're sending in bits:
digitalWrite(latchPin, LOW);
// shift out the bits:
SPI.transfer(p[i]);
//take the latch pin high so the LEDs will light up:
digitalWrite(latchPin, HIGH);
// pause before next value:
delay(dela);
}
repeat--;
}
}
void setup() {
//set pins to output so you can control the shift register
SPI.begin ();
pinMode(pwmPin, OUTPUT);
}
void loop() {
int stp=20;
for(int i=255;i>=0;i-=stp)
{
analogWrite(pwmPin,i);
play(p4,sizeof(p4),1,50*2);
}
for(int i=0;i<256;i+=stp)
{
analogWrite(pwmPin,i);
play(p4,sizeof(p4),1,50*2);
}
}
Zdrojový kód sa nachádza na webe GitHub.
04.07.2016