Vizitator manau Postat Octombrie 11, 2010 Partajează Postat Octombrie 11, 2010 as dori sa fac un termometru cu afisarea temperaturii pe LSD SED1565 96x65 cu sensor DS18B20 pe ATMEGA32 daca ma poate cineva ajuta cu ceva ias fi recunoscatorma intereseaza mai mult codul in studio dar si simularea in proteus Link spre comentariu
ole Postat Octombrie 12, 2010 Partajează Postat Octombrie 12, 2010 Vrei sa fii ajutat cu "ceva". Ce anume? Cod de-a gata, schema de conectare?Cauta proiecte asemanatoare pe google sau avrfreaks.net si sigur vei gasi macar cod pentru termometru cu IC-ul folosit de tine.No offense dar mie personal nu-mi place sa dau chiar mura'n gura ca asta denota lipsa de interes pentru cel care cere. Link spre comentariu
Vizitator manau Postat Octombrie 13, 2010 Partajează Postat Octombrie 13, 2010 multumesc mult iata ce am gasit http://www.siwawi.arubi.uni-kl.de/avr_projects/tempsensor/index.html versiunea 0.9.1 acum cum fac cu fac afisarea pe SED1565 Link spre comentariu
Vizitator manau Postat Ianuarie 22, 2011 Partajează Postat Ianuarie 22, 2011 un pic ajutor cum compilez codul de mai jos in Code Vision AVR si cum schimb din ATmega8 in 32 este un termometru cu sensor ds18b20 lcd nokia 3310 /***************************************************** ATmega8 4,000000 MHz *****************************************************/ #include <mega8.h> // 1 Wire Bus functions #asm .equ __w1_port=0x12;PORTD .equ __w1_bit=2 #endasm #include <1wire.h> // DS1820 Temperature Sensor functions #include <ds18b20.h> #include <delay.h> // maximum number of DS1820 devices // connected to the 1 Wire bus #define MAX_DS18B20 3 // number of DS1820 devices // connected to the 1 Wire bus unsigned char ds18b20_devices; // DS1820 devices ROM code storage area, // 9 bytes are used for each device // (see the w1_search function description in the help) unsigned char ds18b20_rom_codes[MAX_DS18B20][9]; #include <3310lcd.c> #include <stdio.h> // Declare your global variables here float temper; int temper_int,temper_fl,min=0; void temperature(void) // функция по работе с термо-датчиком { temper=ds18b20_temperature(&ds18b20_rom_codes[0][0]); temper_int=temper; // отбор целой части от температуры if(temper<0) // при отрицательной температуре { temper_fl=(temper-temper_int-0.0625)*10; // дробная часть temper_int=-((temper_int*10)+temper_fl); // температура*10 min=1; // минус }else // при положительной { temper_fl=(temper-temper_int)*10; // дробная часть temper_int=(temper_int*10)+temper_fl;// температура*10 min=0; // плюс } } void main(void) { // Determine the number of DS1820 devices // connected to the 1 Wire bus ds18b20_devices=w1_search(0xf0,ds18b20_rom_codes); ds18b20_init(0,-35,35,DS18B20_12BIT_RES); // переключения термометра в 12 битный режим LcdInit(); // LCD module initialization while (ds18b20_devices>0 ) { // Place your code here delay_ms(500); temperature(); // вызываем функцию температуры LcdClear(); // очищаем LCD if(min==1) // если минус { sprintf(lcd_buf,"-%u.%u\x80C",temper_int/10,temper_int%10); //вывод отрицательной температуры }else { sprintf(lcd_buf,"+%i.%d\x80C",temper_int/10,temper_int%10); // вывод положительной } LcdStringBold(1,2); LcdUpdate(); // вывод на дисплей }; } Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum