Elektronika.lt
 2025 m. sausio 8 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 01 08, 19:39. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Atmega16 ir DS18B20
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 16
Pereiti prie 1, 2, 3, 4, 5, 6  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 13, 19:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Niekaip nepavyksta parašyti programos, su kuria galėčiau gauti temperatūrą iš DS18B20. Papraščiausiai nekompiliuoja, nes parašau negerai. Naudoju WinAVR. Į projekto direktoriją įkėliau dallas.h dallasconf.h (pakonfiguravau pagal savo poreikius). Kokius etapus būtina atlikti norint gauti temperatūrą? Visų pirma, manau, reikia aktyvuoti 1-Wire veikimą. Tai padaroma taip?

Kodas:
void ds18b20Init(void)


Kaip suprantu, kiekvienas DS18B20 turi savo adresą, pagal kur galima konkrečiai iš kiekvieno gauti temperatūra. Kaip sužinoti priskirtą adresą?

Galima jungti 5 daviklius ant vienos magistralės ir iš kiekvieno nuskaitynėti?

Gerai būtų pavyzdukas.

_________________
---
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 13, 20:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pirma reikia perskaityti visu irenginiu adresus, paskui gali kreiptis i kuri reikia pagal adresa.
isvs kai pajungta daugiau nei vienas aparatas tai jau sudetingiau.

kaip ta daryti pakaytk MAXIM-ic puslapyje.
o pavyzdys i cia netilptu
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 13, 21:06 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Jei pajungti keli davikliai, iš kur galima nuspręsti koks adresas kuriam priklauso?

_________________
---
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 13, 21:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
gal ant mikroshemos parasyta?
jei neparasyta tek dedukciniu metodu ieskoti.
pajungi po viena ir uzsirasai koks jo adresas.
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 13, 22:02 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Tikriausiai ir yra parašyta ant mikroschemos:

DALLAS
18B20
0628C3
+483AE

Tai manau 0628C3 yra adresas.

_________________
---
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 14, 13:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Su CodeVision AVR viskas labai paprasta:

/* Multipoint thermometer with LCD display
using the Maxim DS18B20
1 Wire bus temperature sensors

CodeVisionAVR C Compiler
(C) 2000-2005 HP InfoTech S.R.L.
www.hpinfotech.ro

Chip: ATmega8515
Memory Model: SMALL
Data Stack Size: 128 bytes

THE ATmega8515 CLOCK FREQUENCY MUST BE 3.6864 MHz

The DS18B20 sensors are connected to
bit 6 of PORTA of the ATmega8515 as follows:

[DS18B20] [STK500 PORTA HEADER]
1 GND - 9 GND
2 DQ - 7 PA6
3 VDD - 10 +5V

All the temperature sensors must be connected
in parallel

AN 4.7k PULLUP RESISTOR MUST BE CONNECTED
BETWEEN DQ (PA6) AND +5V !
*/
#asm
.equ __w1_port=0x1b
.equ __w1_bit=6
#endasm

/* Use an 2x16 alphanumeric LCD connected
to PORTC as follows:

[LCD] [STK500 PORTC HEADER]
1 GND- 9 GND
2 +5V- 10 VCC
3 VLC- LCD contrast control voltage 0..1V
4 RS - 1 PC0
5 RD - 2 PC1
6 EN - 3 PC2
11 D4 - 5 PC4
12 D5 - 6 PC5
13 D6 - 7 PC6
14 D7 - 8 PC7
*/

#asm
.equ __lcd_port=0x15
#endasm

#include <lcd.h> // LCD driver routines
#include <ds18b20.h>
#include <delay.h>
#include <stdio.h>

char lcd_buffer[33];

/* maximum number of DS18B20 connected to the 1 Wire bus */
#define MAX_DEVICES 8

/* DS18B20 devices ROM code storage area */
unsigned char rom_code[MAX_DEVICES][9];

main()
{
unsigned char i,j,devices;

lcd_init(16);
lcd_putsf("CodeVisionAVR\n1 Wire Bus Demo");
delay_ms(2000);
lcd_clear();

/* detect how many DS18B20 devices
are connected to the 1 Wire bus */
devices=w1_search(0xf0,rom_code);
sprintf(lcd_buffer,"%u DS18B20\nDevice detected",devices);
lcd_puts(lcd_buffer);
delay_ms(2000);

/* display the ROM codes for each device */
if (devices)
{
for (i=0;i<devices;i++)
{
sprintf(lcd_buffer,"Device #%u ROM\nCode is:",i+1);
lcd_clear();
lcd_puts(lcd_buffer);
delay_ms(2000);
lcd_clear();
for (j=0;j<8;j++)
{
sprintf(lcd_buffer,"%02X ",rom_code[i][j]);
lcd_puts(lcd_buffer);
if (j==3) lcd_gotoxy(0,1);
};
delay_ms(5000);
};
}
else
while (1); /* stop here if no devices were found */

/* configure each DS18B20 device for 12 bit temperature
measurement resolution */
for (i=0;i<devices;)
if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES))
{
sprintf(lcd_buffer,"Init error for\ndevice #%u",i);
lcd_clear();
lcd_puts(lcd_buffer);
while (1); /* stop here if init error */
};

/* measure and display the temperature(s) */
while (1)
{
j=1;
for (i=0;i<devices;i++)
{
sprintf(lcd_buffer,"t%u=%+.3f\xdfC",j++,ds18b20_temperature(&rom_code[i][0]));
lcd_clear();
lcd_puts(lcd_buffer);
delay_ms(500);
};
};
}
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 14, 16:02 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Jei portu turi pakankamai tai pats paprasciausias budas yra kabinti 1 termometra ant vienos linijos. Tokiu atveju nereikia gauti adreso, gali nuskaitineti temperatura. Kaip 64bitu unikalus adresas nuskaitomas esant daugiau irenginiu pilnai aprasyta datasheete.

_________________
-----
That's what she said.
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 14, 16:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nemanau kad ta daryti verta, reikes dauglaidu be reikalo, ir bus sudetingaiu prideti daugiau davikliu.
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 14, 18:49 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Tik del tingejimo aiskintis kaip adresuoti, padariau 1 termometras per 1 koja.. kita vertus galima rasti ir privalumu, tarkim atskirais laidais isvedziota, patikimiau, viena nutraukus, sugadinus kiti rodys.

_________________
-----
That's what she said.
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 14, 19:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nebutinai taip, kadangi 5 laidai tai tikimybe kad kas nors suges irgi 5 kartus didesne
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 15, 06:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JOnis
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Paprasciausiai issiskaidyk savo uzduoti i kelis etapus. Po reseto pagal aprasyma (algoritma nesunkiai rasi pdf apie ds) padarai davikliu paieska. Susirasai davikliu adresus i eproma arba palieki rame (eprome sudetingiau rasyt, bet po to paprasciau). Arba su kokia knopke issikviesk funkcija kuri iesko davikliu ir juos suraso i eeproma. O jau tada apklausinek reikiamus adresus. Ant korpuso adresas nesiraso. Yra kompine proga delfiu rasyta, inete ji laisvai radama, kuri moka per coma imt temperatura is daviklio tiesiai ir moka numeri jo parodyt. Gali pasiieskot ir naudot nuskaitytus adresus

Pagal daviklio numeri galim aidentifikuot koks konkreciai daviklis. DS18s20 ir ds18b20 siektiek kitaip persiskaiciuoja temepraturos, atkreipk demesi ir i tai. Kai vienu metu maisyti davikliu tipai reikia juos atitinkamai ir perskaiciavinet
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 15, 08:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Reikės bandyti ieškoti ts programos. Tikiuosi pavyks Smile

_________________
---
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 17, 18:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Kolkas neradau programėlės dirbančios su DS18B20. Confused

_________________
---
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 17, 22:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JOnis
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Pasiknaisiosiu po favoritus darbe, bet jauciu nebebus islike.
Siaip korektiskiausia daryt taip kaip priklauso - atlikt davikliu paieska ir tik tada juos klausinet. Neik paciu lengviausiu keliu, eik teisingu keliu
 Atmega16 ir DS18B20
PranešimasParašytas: 2007 06 18, 20:20 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dovydas
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
Galvoju ir aš, kad neatlikus paieškos imti iš daviklių duomenis yra nesamonė.

Bandau panaudoti Dallas 1-Wire Library. Yra tokia funkcija dallasFindDevices. Kaip ją naudojant gauti daviklių kiekį ir adresą?

Kodas:
u08 dallasFindDevices(dallas_rom_id_T rom_id[])
{
   u08 num_found = 0;
   dallas_rom_id_T id;

   // reset the rom search last discrepancy global
   last_discrep = 0;
   done_flag = FALSE;

   // check to make sure presence is detected before we start
   if (dallasReset() == DALLAS_PRESENCE)
   {
      // --> stang
      //while (dallasFindNextDevice(&rom_id[num_found]) && (num_found<DALLAS_MAX_DEVICES))
      //   num_found++;
      
      // continues until no additional devices are found
      while (dallasFindNextDevice(&id) && (num_found<DALLAS_MAX_DEVICES))
         memcpy(&rom_id[num_found++], &id, 8);
   }

   return num_found;
}

_________________
---
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2, 3, 4, 5, 6  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama