Buongiorno a tutti, forse mi sono imbattuto in un problema che non si può risolvere ma mi rivolgo a voi per averne la certezza.
Ho acquistato da qualche settimana un rilevatore di PM2.5/PM10 SDS011. Usandolo da solo funziona benissimo. Ho provato a collegarci un display OLED 128x32 (che usa i pin A4 e A5) e il codice si blocca prima del "void setup".
Singolarmente funzionano entrambi correttamente ma insieme no. Il tutto con un Arduino UNO R3. L'IDE è la versione 1.8.9
Vi posto solo le prime righe del codice per non annoiarvi perché oltre non va.
Perché, con tanti pin utilizzabili con la SoftwareSerial, andarsi a complicare la vita ed eliminarsi qualsiasi possibilità di debug impegnado i pin 0 ed 1 che sono usati dalla Serial e dal convertitore seriale <-> USB di Arduino ? ? ? :
Arduino è un microcontrollore (senza un sistema operativo) e NON può bloccarsi ...
... al limite entra in una sezione di codice che continua a ripetere e non ne esce più, o salta in parti di pogramma non previste, ma qualche cosa fa sempre. Quindi ... specifichiamo meglio cosa esattamente accade ...
Utilizza la seriale, che ora hai liberato e riempi il programma di Serial.println() di diagnostica facendoti stampare sia dove stai passando sia i valori che leggi/non leggi, così da individuare dove è il problema ...
A me risulta che, dopo le dichiarazioni, la prima cosa che viene eseguita sia il "void setup" e li ho messo subito un Serial.print come si può vedere dal primo post, però non viene visualizzato il che mi dice che è, come dici tu, entrato in loop prima.
Se non fa neanche quel Serial.print() ho idea che NON parta proprio ...
... quanto assorbe il sensore PM2.5/PM10 SDS011 (... che non conosco)? Come lo stai alimentando?
Non vorrei che la somma del sensore e dell'OLED faccia più di quanto Arduino possa dare e che quindi vada in protezione e si blocchi ...
Altri motivi per cui non entri nemmeno nel Setup() non ne vedo, savo che il costruttore della classe SdsDustSensor non si pianti da qualche parte per qualche motivo (è l'unica cosa chiamata prima del Setup()) ... :
Si, confermo. Adesso è impostato sul 8 e 9.
Il datasheet dice che ha un'assorbimento di picco di 80mA.
Pensi che l'arduino non ce la faccia? Mi consigli di dargli una alimentazione indipendente e usare dei fotoaccoppiatori per i 2 pin? 0.35W non mi sembra poi così tanto.
Ho provato anche a scollegare la sua ventolina per il ricircolo dell'aria ma non va comunque .