Liczba postów: 2,376
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Pisałem Ci już dwa miesiące temu:
"Ilość błędów możliwa do zrobienia przy podłączaniu 4 cyfr segmentowych przez lajkonika jest ogromna."
Wystarczy że do rejestrów podłączysz jedną cyfrę, zasilanie i komunikację. Jak coś zacznie działać to kolejne. Powinieneś mieć to podłączone do jakiegoś USB Doctora, pokazującego napięcie i pobierany prąd lub przez miernik. Teraz to sobie sprawdź czy w ogóle Arduino jeszcze żyje.
Liczba postów: 24
Liczba wątków: 1
Dołączył: Dec 2017
Reputacja:
0
Hej,
arduino żyje bo właśnie robię testy z innym wyświetlaczem, mam podpięty TM1637 i jak zrobić żeby wyświetlał jednocześnie temperaturę i wilgotność? mam taki kod na wyświetlanie ale niestety wyświetla się na przemian raz temperatura raz wilgotność. Jest on 4 cyfrowy więc chciałbym aby od lewej była np. temp a od prawej wilgotność. Co trzeba dopisać żeby ustawić go na odpowiednie miejsce?
display.showNumberDec(h); //Display the Variable value;
display.showNumberDec(t); //Display the Variable value;
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
Przejrzyj bibliotekę dla TM1637 i dowiesz się jak wyświetlić na konkretnej pozycji określone znaki/liczby. Jak nie możesz tego ogarnąć, umieść tu kod z biblioteki, który nie działa tak jak chcesz a podpowiem co trzeba zrobić.
Biblioteke dla TM1637 znam dobrze bo portowałem to na AVR i ARM.
Liczba postów: 2
Liczba wątków: 1
Dołączył: Jan 2020
Reputacja:
0
23-02-2020, 21:16
(Ten post był ostatnio modyfikowany: 23-02-2020, 21:20 przez kula35.)
Szukam wsadu zegar z temperaturą na DS1307 z wyświetlaczemTM1637. Wiem archaik, ale lepiej w nocy widać cyfry starszym. Próbowałem sam zrobić, ale nie wychodzi. Słabo programowanie mi wychodzi. Wiek nie ten. Ale lubię dłubać w elektronice od lat. W dodatku początkuję z Arduino. Jakby ktoś podrzucił, byłbym wdzięczny. A tu skecz, jak by ktoś spojrzał co naknociłem:
Zegar:
#define DS1307_ADDRESS 0x68 //adres zegara
#include <Wire.h>
#include <DS1307.h>
#include <TM1637Display.h>
//#define CLK 2
//#define DIO 3
TM1637Display display(2,3);
DS1307 clock;
RTCDateTime dt;
//Ustawienie pętli czasu zamiast delay
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzasZegar = 0;
void setup()
{
Serial.begin(9600);
clock.begin();
//Ustawienie czasu - atumatyczne
//clock.setDateTime(__DATE__, __TIME__);
display.setBrightness(7); // Jasność wyświetlacza
// odblokowaniwe 1Hz
/*clock.setOutput(DS1307_1HZ);
switch (clock.getOutput())
{
case DS1307_LOW: Serial.println("SQW = LOW"); break;
case DS1307_HIGH: Serial.println("SQW = HIGH"); break;
case DS1307_1HZ: Serial.println("SQW = 1Hz"); break;
case DS1307_4096HZ: Serial.println("SQW = 4096Hz"); break;
case DS1307_8192HZ: Serial.println("SQW = 8192Hz"); break;
case DS1307_32768HZ: Serial.println("SQW = 32768Hz"); break;
default: Serial.println("SQW = Unknown"); break;
}*/
}
void loop()
{
aktualnyCzas = millis(); //Pobierz liczbe milisekund od startu, zamiast delay
if (aktualnyCzas - zapamietanyCzasZegar >= 1000UL) { //Jeśli różnica wynosi ponad 1 sekundę, zamiast delay
zapamietanyCzasZegar = aktualnyCzas; //Zapamietaj aktualny czas, zamiast deay
//wyświetlanie czasu
dt = clock.getDateTime();
display.clear();
display.showNumberDec(dt.hour,false,2,0);
display.showNumberDec(dt.minute,false,2,3);
}
}
Temperatura która działa.:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <TM1637Display.h>
#define ONE_WIRE_BUS 8 //Digital Pin to connect the DS18B20 Sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress sensor1;
TM1637Display display(2,3);
const uint8_t DEGREES[] = {
0x0, 0x0,
SEG_A | SEG_B | SEG_G | SEG_F, // Degree Symbol
SEG_A | SEG_F | SEG_E | SEG_D, // C
};
unsigned int temperature = 0;
byte PreviousValue = 0;
void setup()
{
sensors.begin();
display.setBrightness(7); // set display to maximum brightness
if (!sensors.getAddress(sensor1, 0))
{
Serial.println("Sensor not found!");
}
}
void loop()
{
//Zażądaj danych czujnika
sensors.requestTemperatures();
int tempC = sensors.getTempC(sensor1); //Read temperature of DS18B20 Sensor
if(tempC != PreviousValue)
{
PreviousValue = tempC;
display.setSegments(DEGREES); //Display the Variable value
display.showNumberDec(tempC,false,2,0);
delay(2000);
}
}