• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
problem z atmega na płytce stykowej + ds18b20 +lcd
#1
Witam,
mam problem od jakiegoś czasu z czujnikiem DS18B20 z procesorem na płytce stykowej. Układ złożony z atmega 328 , ds18b20 oraz lcd. przy programowaniu poprzez usbasp pokazuje temp. -127. Ten sam program( oczywiście zmieniony pin onewire) wrzucony na arduino leonardo i czujnik (ten sam) przepięty do niego dział poprawnie. Bibblioteki są te same. Używam środowiska Arduino IDE . Do procka przypięty kwarc 16mhz i 2 kond. 22pf, oraz kondensator między vcc i gnd (Zasilanie póki co z USBASP).Dodam ,że próbowałem to również z atmegą 32 i atmegą 16, aby wykluczyć uszkodzenie procesora. Miał ktoś kiedyś taki problem z programowaniem przez arduinoIDE swoich płytek?
Zaznaczę tylko , że rok temu robiłem układ podobny i bez zarzutów działał. Czy jakieś inne wersje bibliotek i samego środowiska mogą mieć wpływ?? Męczę się już z tym 3 tygodnie.

Pozdrawiam Marcin
 
Odpowiedź
#2
Witam!
Bez kodu to zawsze ciężko pomóc, ale mam pytanie: Jakiego używasz napięcia odniesienia dla ADC?
Pytam bo atmega32u4 ma 5V i 2.56V, atmega 328 posiada jeszcze dodatkowo 1.1V i może gdzieś tu leży problem, ale jak mówię wklej kod to popatrzymy.
CodingBlog.pl - ELEKTRONIKA / PROGRAMOWANIE / DIY
 
Odpowiedź
#3
(10-11-2017, 13:15)PlusMinus napisał(a): Witam!
Bez kodu to zawsze ciężko pomóc, ale mam pytanie: Jakiego używasz napięcia odniesienia dla ADC?
Pytam bo atmega32u4 ma 5V i 2.56V, atmega 328 posiada jeszcze dodatkowo 1.1V i może gdzieś tu leży problem, ale jak mówię wklej kod to popatrzymy.

Poniżej kod. Program po zmianie na płytkę arduino leonardo działa. Używam zestawu minicore dla atmegi 8 / 328 i mightycore dla Atmego 16/32


Kod:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>



#define ONE_WIRE_BUS 7
LiquidCrystal lcd(A3,A2,0,1,2,3);
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);


// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

/*
* The setup function. We only start the sensors here
*/
void setup(void)
{
 // start serial port
 
 lcd.begin(16, 2);
 // Start up the library
 sensors.begin();
}

/*
* Main function, get and show the temperature
*/
void loop(void)
{
 sensors.requestTemperatures();
 // call sensors.requestTemperatures() to issue a global temperature
 // request to all devices on the bus
 lcd.clear();
 lcd.print("temp ");
 // Send the command to get temperatures
 lcd.print(sensors.getTempCByIndex(0));  
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości