Liczba postów: 4
Liczba wątków: 2
Dołączył: Feb 2021
Reputacja:
0
13-02-2021, 14:30
Cześć,
Zbieram dane z kilku czujników DS18B20 w Arduino. Obrabiam je (licze średnią temperaturę) następnie chcę przesłać wynik do innego mikrokontrolera STM32 (w którym nie mogę grzebać i go programować). Sygnał musi być przesyłany po 1-Wire.
Czy da sie w Arduino zasymulować sygnał 1-Wire na wyjściu aby był widoczny jako jeden sensor DS18B20 ?
Liczba postów: 4
Liczba wątków: 2
Dołączył: Feb 2021
Reputacja:
0
Tak o coś takiego chodziło.
Przykład z biblioteki dla Arduino Uno kompiluje się bez problemu. Problem pojawia się gdy próbuję skompilować go dla Arduino Mega:
Kompilowanie szkicu...
"F:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IF:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IF:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IF:\Program Files (x86)\Arduino\libraries\onewirearduinoslave\src" "C:\Users\HAL9000\AppData\Local\Temp\arduino_build_620321\sketch\FakeDS18B20.ino.cpp" -o "C:\Users\HAL9000\AppData\Local\Temp\arduino_build_620321\sketch\FakeDS18B20.ino.cpp.o"
In file included from F:\Program Files (x86)\Arduino\libraries\onewirearduinoslave\src/OneWireSlave.h:5:0,
from F:\Program Files (x86)\Arduino\libraries\onewirearduinoslave\examples\FakeDS18B20\FakeDS18B20.ino:2:
F:\Program Files (x86)\Arduino\libraries\onewirearduinoslave\src/utility/LowLevel.h: In member function 'void Pin::attachInterrupt(void (*)(), int)':
F:\Program Files (x86)\Arduino\libraries\onewirearduinoslave\src/utility/LowLevel.h:157:3: error: 'CLEARINTERRUPT' was not declared in this scope
CLEARINTERRUPT; // clear any pending interrupt (we want to call the handler only for interrupts happening after it is attached)
^
Użycie biblioteki onewirearduinoslave w wersji 0.1 z folderu: F:\Program Files (x86)\Arduino\libraries\onewirearduinoslave
exit status 1
Błąd kompilacji dla płytki Arduino/Genuino Mega or Mega 2560.
Czy jest na to jakaś rada ?
Liczba postów: 356
Liczba wątków: 5
Dołączył: Aug 2019
Reputacja:
28
Poszukaj w necie podobnych rozwiązań. Są zapewne inne biblioteki. Ja bawiłem się tylko z nano lub uno i działało. Robiłem to z ciekawości i nie zastosowałem tego w praktyce.
Liczba postów: 2,367
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
W tej bibliotece do DS slave w lowlevel.h jest używany dostęp do przerwań na niskim poziomie w taki sposób, że są one zdefiniowane tylko dla wybranych uC, np. 328P i Attiny85, innych z AVR nie widzę, tak że użyj tych lub szukaj innej biblioteki. Zresztą jak będziesz używał dość mocno uC to i tak się wszystko rozjedzie, więc po prostu weź 328P, wgraj ten szkic, wyślij mu dane po UART z MEGA, a ten dalej będzie udawał DS'a dla STM32.