/* ćwiczenie Arduino Wyświetlacz 7-segmentowy (5461BS-1 Wspólna anoda 12 PIN) z funkcjami:
* - LampTest
* 2023-24 Wojciech Zając
* Projekt oparty na otwartym materiale ze strony https://create.arduino.cc/projecthub/SAnwandter1
* Oznaczenia
* WA1-WA4 - wspólna anoda danej cyfry,
* A, B, ... H - segmenty wyświetlacza, jak na rys. poniżej
* Schemat połączeń
* Układ segmentów w wyswietlaczu:
* A
* Piny Arduino: 9 2 7 10 11 3 ---
* | | | | | | F | | B
* 220R| | 220R 220R | | G |
* | | | | | | ---
* WA1 A F WA2 WA3 B E | | C
* ------------------------------------- | D |
* | CYRFA1 CYFRA2 CYFRA3 CYFRA4 | --- o (DP=H)
* -------------------------------------
* E D H C G WA4
* | | | | | |
* | | | | | 220R
* | | | | | |
* 6 5 13 4 8 12
*/
#define pauza 300 //globalna definicja okresu pauzy między zmianami cyfr
// Piny 2-8 podączone są do poszczególnych segmentów wywwietlacza, a 13 do kropki dziesiętnej
int pinA = 2;
int pinB = 3;
int pinC = 4;
int pinD = 5;
int pinE = 6;
int pinF = 7;
int pinG = 8;
int pinH = 13;
//piny 9-12 podłączone są do wspólnej anody kolejnych cyfr
int D1 = 9;
int D2 = 10;
int D3 = 11;
int D4 = 12;
/////////!!!!!!!!!! wersja niepoprawna ale proszę przepisać !!!!!
void setup() {
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinH, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D4, OUTPUT);
}
/********************** funkcje (podprogramy) ***************/
void LampTest(){ //zapalenie wszystkich segmentów na wszystkich
digitalWrite(D1, HIGH); //właczenie wszystkich anod
digitalWrite(D2, HIGH);
digitalWrite(D3, HIGH);
digitalWrite(D4, HIGH);
digitalWrite(pinA, LOW);//włączenie wszystkicj segmentów
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinH, LOW);
}
/************* Pętla loop ***********************************/
void loop() {
LampTest();
delay(1000);
}