60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: Tiborx8 » 2016. december 26. hétfő, 20:54

Koszonom a valaszokat.

A forumon rengeteg segitokesz embert talaltam, nekik ezuton is koszonok minden segitseget.

venmedve
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2017. február 2. csütörtök, 18:29
Tartózkodási hely: Budapest

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: venmedve » 2017. március 1. szerda, 19:51

Eredetileg úgy gondoltam nem foglalkozok még ezzel a házival, de rájöttem a HW nélkül is megoldható.
Előjeles megjelenítés kell? Itt egy lehetséges megoldás.

Kód: Egész kijelölése

/* I2C thermo EXT1
 LM754/TCN75A sample
 60 nap alatt arduino tanfolyam
 Venmedve megoldása
 
 Akinek van hadrwere kipróbálhatná. :)
*
* A program némi egyszerusitesen esett at
* Ugyanakkor használtam a "C" nyelv altal nyujtott
* lehetosegeket.
*
* Bar az alapelv, a programok hordozhatosaga miatt
* az, hogy a lehetoleg ne hasznaljunk nyelvspecifikus
* megoldasaokat, megis az alabbi programban hasznalt
* megoldasokat megengedhetonek talalom
* Ugyanis a legtobb magas nyelvu program ismeri a
* hasznalt adatipusokat, (C PASCAL C++ Arduino)
* A kis tomoritest meg szukseg eseten ki lehet bontani.
 */

//wire fuggveny kell!
#include "Wire.h"

//2 belso valtozo

// Csak egy valtozo kell !
// t a belovasott homerseklet
// mivel a homero IC kettes komlemensben
// ket byteon tarolja a homersekleti adatokat,
// elegendo az int tipus.
// tudjuk hogy az int tipus 2 byeton tarolt elojeles
// egesz.
// Ez kicsit bonyolitja a tizedes jegyek kiitasat, de megoldhato.

int t;

void setup()
{
  //IIC kommunikacio inicializalas
  Wire.begin();
  //Sorosport megnyitasa
  Serial.begin(9600);
}
void loop()
{ //A 72-es cimrol 2 byte-t kerunk
  Wire.requestFrom(72, 2);
  //ha nincs eszkoz, akkor itt all a program
  while (Wire.available())
  {
    //1. byte megerkezik: egesz fok
    // * ez az eredeti program resze kicsit modositva
    // a beolvasott byte-ot 256-al szorozva az int tipusu
    // t valtozo felso 8 bitjen helyezzuk el
    t = Wire.read() * 256;
    //2. byte megerkezik: tort hofok
    // * Az also 8bitet ami a tizedeseket tartalmazza hozzadjuk a
    // t valtozohoz, igy annak az also nyolc bizjet foglalja el
    // a beolvasott adat a következo keppen nez ki:
    // egeszek  tortek az also negy bit a katalogus szerint 0
    // eeeeeeee tttt0000
    // ha megis ketsegeink lennenek, : t += (Wire.read() & 0xfff0);
    // a tovabbiakban nincs szukseg semmifele muveletre, hiszen a
    // kapott ertek egy elojeles szam ami aranyos a homerseklettel.
    // vagyis az aktualis homerseklet 256 szorosa.
    t += Wire.read();
    Serial.print("Temperature = ");
    // a korrekciot a kiiratasban vegzzuk el.
    // Ezzel lehetove teve a tizedfokok kiirasat
    // a kiiras 4 tizedessel irja ki a homersekletet,
    // ami kicsit nagykepu, mivel a thermometer IC +-2 fok
    // pontasan mer, a gyari adato szerint
    Serial.println(float(t) / 256, 4);
  }
  delay(100);
}

_jani_
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2019. február 26. kedd, 16:17
Tartózkodási hely: Mezőhegyes

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: _jani_ » 2019. május 2. csütörtök, 21:35

A "Bitenkénti operátorok" sem voltak még a leckében.
PL:

Kód: Egész kijelölése

y = (~x)+1

Vagyis jól gondolom, hogy szó szerint ki kell számolni a kettes komplemens-t a beolvasott értrékből?
by _jani_ :wink:

_jani_
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2019. február 26. kedd, 16:17
Tartózkodási hely: Mezőhegyes

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: _jani_ » 2019. május 3. péntek, 2:19

venmedve programját átgondolva elkészült a negatív hőfokot is kijelző, számításon alapuló programom:

Kód: Egész kijelölése

/* (27.01.)
          I2C thermo ext1
         
    LM75/TCN75A sample
       
   60 nap alatt Arduino tanfolyam
   (c) TavIR http://www.tavir.hu
*/
#include <Wire.h>

unsigned int t,t1; // Változó: egész, két bytes,
byte t2; // Változó: egész, egy bytes,

void setup() {
  // IIC kommunikáció inicializálás.
  Wire.begin();
  // Sorosport megnyitása.
  Serial.begin(9600);
}

void loop() {
  // A 72-es címről 2 byte-t kérünk.
  // ( Az eszköz a 0x48-as címen van... )
  Wire.requestFrom(72, 2);
    // Ha nincs eszköz akkor itt áll a program.
  while(Wire.available()) {
    // 1. byte megérkezik: egész fok.
    t = Wire.read() * 256; // A beolvasott első bytet a t első felére tesszük.
    // 2. byte megérkezik: tört hőfok.
    t += Wire.read(); // A beolvasott első byte-t a t alsó felére tesszük.
    // Bináris megjelenítéssel jól követhető, hogy mi hova kerül. ;)

    // Egész fok kiírása.
    Serial.print("Temperature: ");

    if (t >= 32768) {
      // t1 = (~t)+1; // Bitenkénti NEM (NOT) operátor. (Bitwise NOT operator.)
      // Bitenkénti NOT ( ~ ) operátor nem egyenlő a logikai NOT ( ! ) operátorral!!!
      t1 = ( 65535 - t) + 1; // A bitenkénti NOT kiváltása számítással...
      Serial.print("-");
      Serial.print(t1 / 256); // - Egész fok kiírása.
    } else {
      Serial.print(" ");
      Serial.print(t / 256);  // Egész fok kiírása.
    }

    // A törtfok kiírása.
    t2 = t; // A t alacsonyabb helyértékének elmentése byte-ként t2-be.
   
    if (t2 >= 32 || t2 <= 192) {
   
      t2 = (t2 / 31) * 14;
      // t2 = t2 / 31;  // Eldobjuk a felesleges biteket...
      // t2 = t2 * 14;  // Megközelítőleg decimálisra alakítjuk a kapott eredményt...
     
      Serial.print(".");
      Serial.println(t2);
     
    } else {
      Serial.println(".0");
    }
}
delay(1000);
}


A számítás röviden:
Ha " x >= 32768 " akkor " y = ( 65535 - x) + 1 ".
Vagyis, ha az előjel bit 1-es ( ebben az esetben x nagyobb vagy egyenlő mint 32768 )
akkor az elérhető legnagyobb értékből ( ebben a példában 65535 ) ki kell vonni a mért értéket ( x-et ) és hozzá kell adni egyet,
hogy az eredmény megfeleljen a kettes komplemens-nek.

Tudom, hogy a t és t1 változókat össze lehetne logikailag vonni...
S a tizedes érték képzése is csak közelítő, de ez amúgy is csak egy mintaprogram s nem patikaműszer...

Jó fejben tartani hogy: A Bitenkénti NOT ( ~ ) operátor nem egyenlő a logikai NOT ( ! ) operátorral!!!

venmedve: a programod működik a vasban is...
A programokat csak LM75A-val teszteltem.
by _jani_ :wink:

_jani_
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2019. február 26. kedd, 16:17
Tartózkodási hely: Mezőhegyes

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: _jani_ » 2019. május 6. hétfő, 21:35

Sziasztok! Időközben próbáltam konfigurálni az LM75A OS kivezetését, hogy ki lehessen használni az IC minden tudását...
Született is egy program ami bár működik, de biztosan megoldható elegánsabban is.
Szeretném ha átnéznétek, hogy mit gondoltam rosszul, vagy hogyan lehetne elegánsabban megírni az inicializáló részt.
A program:

Kód: Egész kijelölése

/*(27.01.)
        I2C thermo ext1
         
    LM75/TCN75A sample
       
   60 nap alatt Arduino tanfolyam
   (c) TavIR http://www.tavir.hu
*/
#include <Wire.h>

unsigned int t,t1; // Változó: egész, két bites,
byte t2; // Változó: egész, egy bites,

void setup() {
  // IIC kommunikáció inicializálás.
  Wire.begin();
 
/* Hőfokbeállítás... Egy próba.
 * 
 * Wire.beginTransmission(lm75a_sensor ADDRESS)-címen;
 * POINTER BYTE kiküldése; B00000010 = THYST ( alsó kapcsolási pont )
 * MSB hőfok-byte kiküldése; (8-bit)
 * LSB byte (bitek) kiküldése; (max 3-bit: B...xxxxx (adatlap szerint: B.xxxxxxx))
 * STOP paranccsal a port felszabadítása;   
 *
 * Wire.beginTransmission(lm75a_sensor ADDRESS)-címen;
 * POINTER BYTE kiküldése; B00000011 = TOS ( felső kapcsolási pont )
 * MSB hőfok-byte kiküldése; (8-bit)   
 * LSB byte (bitek) kiküldése; (max 3-bit:B...xxxxx (adatlap szerint: B.xxxxxxx))
 * STOP paranccsal a port felszabadítása;   
 *
 * Wire.beginTransmission(lm75a_sensor ADDRESS)-címen;
 * POINTER BYTE kiküldése; B00000000 = Config - hőfokolvasás.
 * STOP paranccsal a port felszabadítása;
 *
 * (talán valahogy így nézne ki a program)
 *
*/
 
 Wire.beginTransmission(0x48);
  Wire.write(B00000010); // THYST ( alsó ˇ kapcsolási pont )
  Wire.write(B00011100); // (28C = B00011100)
  // Wire.write(B000xxxxx); // (Tört C = B...xxxxx)
  if (Wire.endTransmission());
 
 Wire.beginTransmission(0x48);
  Wire.write(B00000011); // TOS ( felső ^ kapcsolási pont )
  Wire.write(B00011101); // (29C = B00011101)
  //  Wire.write(B000xxxxx); // (Tört C = B...xxxxx)
  if (Wire.endTransmission());

// Configurációs regiszter beállítása.
 Wire.beginTransmission(0x48);
  Wire.write(B0000001); // Config - Regiszter
  Wire.write(B0001000); // Config adat ( Lásd adatlapban... )
  // B.......0 = Normál üzem.                B.......1 = Alacsony teljesítményű üzemmód.
  // B......0. = Comparátor üzemmód (OS kimenet).    B......1. = INTERRUPT (INT.) üzemmód.
  // B.....0.. = OS kimenet : Aktív LOW.             B.....1.. = OS kimenet : Aktív HIGH üzemmód.
  // B...XX...  Hibakezelés XX-bit : B00 =_1_Default. B01 = 2. B10 = 4. B11 = 6.
  if (Wire.endTransmission());

// Vissza kell állítani az érzékelőt hőmérsékletmérésre (CONFIG: B00000000)
 Wire.beginTransmission(0x48);
  Wire.write(B0000000); // Config - hőfokolvasás.
  if (Wire.endTransmission());
 
  // Sorosport megnyitása.
  Serial.begin(9600);
}

void loop() {
  // A 72-es címről 2 byte-t kérünk.
  // ( Az eszköz a 0x48-as címen van... )
  Wire.requestFrom(72, 2);
  // Wire.requestFrom(72, 2, stop);
  // Ha nincs eszköz akkor itt áll a program.
  while(Wire.available()) {
    // 1. byte megérkezik: egész fok.
    t = Wire.read() * 256; // A beolvasott első byte-t a t első felére tesszük.
    // 2. byte megérkezik: tört hőfok.
    t += Wire.read(); // A beolvasott első byte-t a t alsó felére tesszük.
    // Bináris megjelenítéssel jól követhető, hogy mi hova kerül. ;)

    // Egész fok kiírása.
    Serial.print("Temperature: ");

    if (t >= 32768) {
      // t1 = (~t)+1; // Bitenkénti NEM (NOT) operátor. (Bitwise NOT operator.)
      // Bitenkénti NOT ( ~ ) operátor nem egyenlő a logikai NOT ( ! ) operátorral!!!
      t1 = ( 65535 - t) + 1; // A bitenkénti NOT kiváltása számítással...
      Serial.print("-");
      Serial.print(t1 / 256); // - Egész fok kiírása.
    } else {
      Serial.print(" ");
      Serial.print(t / 256);  // Egész fok kiírása.
    }

    // A törtfok kiírása.
    t2 = t; // A t alacsonyabb helyértékének elmentése byte-ként t2-be.
   
    if (t2 >= 32 || t2 <= 192) {
   
      t2 = (t2 / 31) * 14;
      // t2 = t2 / 31;  // Eldobjuk a felesleges biteket...
      // t2 = t2 * 14;  // Nagyjából decimálisra alakítjuk a kapott eredményt.
     
      Serial.print(".");
      Serial.println(t2);
     
    } else {
      Serial.println(".0");
    }
}
delay(1000);
}

Előre Köszönöm a választ!
by _jani_ :wink:

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3358
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: kapu48 » 2019. május 7. kedd, 12:51

A ;-vel lezárt iff-ek mire szolgálnak? ( if (Wire.endTransmission()); ?)

Szerintem értelmetlen lekérdezni az adott függvény visszatérési értékét, ha utána nem dolgozzuk fel azt!
Ha nem érdekel, hogy sikeresen le tudta zárni a Wire.endTransmission()?
Akkor elég simán if nélkül a Wire.endTransmission();

Vagy ha már vizsgálod?
// Sorosport megnyitása.
Serial.begin(9600);

Akkor írasdki, ha hibás: if (!Wire.endTransmission()) Serial.print("Transmission Error! ");

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3358
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: kapu48 » 2019. május 7. kedd, 13:02

Egy jobb IDE az ilyen if(?);-eket ki optimizálja, de szerintem az arduino IDE nem a jobbak közé tartozik!

pappelektronika
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2019. december 8. vasárnap, 17:39

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: pappelektronika » 2020. január 5. vasárnap, 9:09

Sziasztok!
Ezzel a hőmérős házival, egy kicsit meggyűlt a bajom..vagyis annyira nem, csak egy kicsit több időt vett igénybe, mint gondoltam...A hivatkozás által letöltött adatlapon,(Microchip TCN75 (datasheet_tcn75avoa.pdf)) nem szerepelt a hőfoktáblázat, így hát az előjelért felelős bitet magamnak kellett megtalálnom.Ebben segítségre hívtam egy LCD kijelzőt, amelyen binárisan és decimálisan is kiírattam az értékeket.Mondjuk nem csak ezért...hanem azért is, mert nem volt elég hosszú kábel, hogy az EXT1 panelra szerelt hőmérő chipet kilógassam a mínuszokba..:)).De a végén nem maradt el az eredmény..itt megosztom, nekem így sikerült..ha van jó tanács, építő kritika, szívesen várom! !
Egy lelkes kezdő..:)
/* I2C thermo EXT1
LM754/TCN75A sample
60 nap alatt arduino tanfolyam + pappelektronika megoldása házi feladatra
(c) TavIR http://www.tavir.hu */
#include"LiquidCrystal.h" //LCD könyvtár betöltése
LiquidCrystal lcd(4,5,6,7,8,9); // LCD bekötése
//wire fuggveny kell!
#include "Wire.h"

//2 belso valtozo
byte t,l;
byte te;
void setup()
{
lcd.begin(16,2);
//IIC kommunikacio inicializalas
Wire.begin();
//Sorosport megnyitasa
Serial.begin(9600);
}
void loop(){
lcd.clear();
//A 72-es cimrol 2 byte-t kerunk
Wire.requestFrom(72, 2);
//ha nincs eszkoz, akkor itt all a program
while(Wire.available())
{

lcd.setCursor(0,0);
lcd.clear();
lcd.print("Binary");
lcd.setCursor(8,0);
lcd.print(te,BIN);
lcd.setCursor(0,1);
lcd.print("Hofok");
//1. byte megerkezik: egesz fok
t = Wire.read();
//2. byte megerkezik: tort hofok

l = Wire.read();
te=t;
//Egesz fok kiirasa

if (t>125){
t=255-t;
Serial.print("Temperature =- ");
Serial.print(t);
lcd.setCursor(7,1);
lcd.print("-");
lcd.setCursor(8,1);

lcd.print(t);
}
else{

Serial.print("Temperature = ");
Serial.println(t,BIN);
Serial.print(t);
lcd.setCursor(8,1);
lcd.print(t);
}
//a tortfok kiirasa
if (l == 128 ) {
Serial.println(".5");
lcd.setCursor(10,1);
lcd.print(".5C");
} else {

Serial.println (".0");
lcd.setCursor(10,1);
lcd.print(".0C");

}
delay(100);
}
lcd.clear();
}


Bocsi ,hogy a sorokhoz ezúttal nem írtam magyarázatot..

pappelektronika
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2019. december 8. vasárnap, 17:39

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: pappelektronika » 2020. január 28. kedd, 20:52

#include <Wire.h>
#include <RealTimeClockDS1307.h>
#include "LiquidCrystal.h"
#include <Keypad.h>
const byte ROWS = 3;
const byte COLS = 3;
char matrixKeys[ROWS][COLS] = {
{'F','E','1'},
{'B','J','2'},
{'L','O','3'},
};
byte rowPins[ROWS] = {2,3, 10};
byte colPins[COLS] = {11,12,13};
Keypad customKeypad = Keypad(makeKeymap(matrixKeys), rowPins, colPins, ROWS, COLS);
#define Display_Clock_Every_N_Seconds 1
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
char formatted[] = "00-00-00 00:00:00x";
byte orakep[8] = {B1110,
B10001,
B1110,
B10101,
B11101,
B10001,
B1110};
int mp ;
int p ;
int o ;
int ev ;
int ho ;
int nap ;
int hn ;
char* hnap[]={"Vas","Het","Kedd","Sze","Csut","Pen","Szo"};
void setup() {
//Wire.begin();
Serial.begin(9600);
lcd.createChar(1, orakep);
lcd.begin(16, 2);
}
void alapkep(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(hnap[hn]);
lcd.setCursor(6,0);
lcd.print("20");
lcd.print(ev/10);
lcd.print(ev%10);
lcd.print("-");
lcd.print(ho/10);
lcd.print(ho%10);
lcd.print("-");
lcd.print(nap/10);
lcd.print(nap%10);
lcd.setCursor(0,1);
lcd.write(1);
lcd.setCursor(5,1);
lcd.print(o/10);
lcd.print(o%10);
lcd.print(":");
lcd.print(p/10);
lcd.print(p%10);
lcd.print(":");
lcd.print(mp/10);
lcd.print(mp%10);
delay(1000);
}
void hnb(){
lcd.setCursor(0,1);
lcd.clear();
lcd.print("Napnev");
lcd.setCursor(7,1);
char customKey = customKeypad.getKey();
if(customKey=='F'){
hn=hn+1;
}
if(customKey=='L'){
hn=hn-1;
}
lcd.print(hnap[hn]);
if(customKey=='O'){
Serial.print(hn);
RTC.setDayOfWeek(hn+1);
RTC.setClock();
RTC.start();
RTC.setClock();
delay(500);
asm volatile ( "jmp 0");
}
delay(50);
hnb();
}
void mpb(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Mperc ");
lcd.setCursor(7,1);
lcd.print(mp/10);
lcd.print(mp%10);
if(customKey=='F'){
mp=mp+1;
}
if(customKey=='L'){
mp=mp-1;
}
if(customKey=='O'){
RTC.setSeconds(mp);
RTC.setClock();
hnb();
}
delay(50);
mpb();
}
void pb(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Perc ");
lcd.setCursor(7,1);
lcd.print(p/10);
lcd.print(p%10);
if(customKey=='F'){
p=p+1;
}
if(customKey=='L'){
p=p-1;
}
if(customKey=='O'){
RTC.setMinutes(p);
RTC.setClock();
mpb();
}
delay(50);
pb();
}
void ob(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Ora ");
lcd.setCursor(7,1);
lcd.print(o/10);
lcd.print(o%10);
if(customKey=='F'){
o=o+1;
}
if(customKey=='L'){
o=o-1;
}
if(customKey=='O'){
RTC.setHours(o);
RTC.setClock();
pb();
}
delay(50);
ob();
}
void evb(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Ev ");
lcd.setCursor(7,1);
lcd.print(ev/10);
lcd.print(ev%10);
if(customKey=='F'){
ev=ev+1;
}
if(customKey=='L'){
ev=ev-1;
}
if(customKey=='O'){
RTC.setYear(ev);
RTC.setClock();
hob();
}
delay(50);
evb();
}
void nb(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Nap ");
lcd.setCursor(7,1);
lcd.print(nap/10);
lcd.print(nap%10);
if(customKey=='F'){
nap=nap+1;
}
if(customKey=='L'){
nap=nap-1;
}
if(customKey=='O'){
RTC.setDay(nap);
RTC.setClock();
ob();
}
delay(50);
nb();
}
void beallitas(){
lcd.clear();
lcd.setCursor(0,0);
lcd.write(1);
lcd.print(" Beallitas");
evb();
}
void hob(){
char customKey = customKeypad.getKey();
lcd.setCursor(0,1);
lcd.print("Ho ");
lcd.setCursor(7,1);
lcd.print(ho/10);
lcd.print(ho%10);
if(customKey=='F'){
ho=ho+1;
}
if(customKey=='L'){
ho=ho-1;
}
if(customKey=='O'){
RTC.setMonth(ho);
RTC.setClock();
nb();
}
delay(50);
hob();
}
void loop() {
RTC.readClock();
hn=RTC.getDayOfWeek();
hn=hn-1;
RTC.readClock();
ev=RTC.getYear();
RTC.readClock();
ho=RTC.getMonth();
RTC.readClock();
nap=RTC.getDay();
RTC.readClock();
o=RTC.getHours();
RTC.readClock();
p=RTC.getMinutes();
RTC.readClock();
mp=RTC.getSeconds();
char customKey = customKeypad.getKey();
if(customKey=='O'){
beallitas();
}
alapkep();

}

pappelektronika
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2019. december 8. vasárnap, 17:39

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: pappelektronika » 2020. január 28. kedd, 21:00

Sziasztok!
Az építő tanácsot megfogadva , kissé átalakítottam az órámat, no meg persze kiegészítettem beállító gombokkal,...még van hibája, de működik, ha tudtok hasznos tanáccsal kérlek segítsetek!
Kezdő vagyok,...Ez egy ds1307 chipre és egy általam forrasztgatott 3*3 matrixkeyre írt verzió...tudom,hogy még van mit rajta dolgozni, a delayeket le fogom cserélni...
Várom észrevételeiteket,..előre is köszönöm...
Tisztelettel és megbecsüléssel/Papp Norbert/ "pappelektronika"

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3358
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: 60 nap alatt Arduino #29 - I2C busz és a TC75/LM75

HozzászólásSzerző: kapu48 » 2020. március 30. hétfő, 13:34

Első fontos észrevétel.
Ha program kódot illesztesz be. Akkor azt a szerkesztő ablak felett levő „Code” gomb alkalmazásával tegyed! A megjelenő zárójelezések között villogó kurzor helyére illeszt be a programod. Jóval olvashatóbb marad.


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég