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


Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Jak wysyłać sygnał 1-Wire z Arduino ?
#6
Zaczęło mi działać Smile ! Więc to już coś. Kod z przykładu FakeDS18B20. Mam jedynie problemy z tym, że gdy robię to pomiędzy dwoma Arduino to co jakiś czas zamiast wpisanej wartości (42) wywala mi wartość -127 czyli nie czyta. Musi coś być z brakiem dokładnego "zgrania się" mastera i slava. Doszedłem do tego, że za to odpowiada ta funkcja IF, ale niestety Sad, nie rozumiem jej:
Kod:
if (localState == DS_ConvertingTemperature && millis() > localConversionStartTime + 750)
{
float temperature = 42.0f; // here you could plug any logic you want to return the emulated temperature
int16_t raw = (int16_t)(temperature * 16.0f + 0.5f);

byte data[9];
data[0] = (byte)raw;
data[1] = (byte)(raw >> 8);
for (int i = 2; i < 8; ++i)
data[i] = 0;
data[8] = OWSlave.crc8(data, 8);

cli();
memcpy((void*)scratchpad, data, 9);
state = DS_TemperatureConverted;
OWSlave.beginWriteBit(1, true); // now that conversion is finished, start sending ones until reset
sei();
}
750....to pewnie max czas reakcji DS18B20
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Jak wysyłać sygnał 1-Wire z Arduino ? - przez HAL_9000_PL - 19-02-2021, 22:52

Skocz do:


Przeglądający: 1 gości