Offriamo una vasta gamma dei migliori connettori per sensori DS18B20 a 1 filo, incluso Nanoflex, DisplayPort, USB, Solare, SATA, HDMI, È UN'IDEA, SAS & molti altri. Tutti i cavi sono realizzati secondo i più alti standard del settore. L'utilizzo di Sensor Circuit Assembly per le costruzioni in scatola ti consente di concentrarti sulla progettazione e sul marketing, ridurre i costi, e raccogliere i vantaggi delle nostre catene di montaggio, Processi di garanzia della qualità, e competenza produttiva.
Il sensore DS18B20 comunica utilizzando il “1-Filo” protocollo, il che significa che utilizza un'unica linea dati per tutte le comunicazioni con un microcontrollore, consentendo di collegare più sensori sulla stessa linea e identificarli tramite il loro codice seriale univoco a 64 bit; questa singola linea dati viene alzata con un resistore e il sensore trasmette i dati abbassando la linea durante intervalli di tempo specifici per inviare bit di informazioni.
Sensore di temperatura DS18B20: La sonda impermeabile DS18B20 è progettata per l'uso subacqueo, in grado di funzionare in ambienti bagnati o umidi senza essere danneggiato dall'acqua o dall'umidità.
Tensione di alimentazione del sensore di temperatura: 3.0V ~ 5,25 V;
Intervallo di temperatura operativa:-55 ℃ a +125 ℃ (-67 ℉ a +257 ℉);
Fornisce misurazioni della temperatura Celsius da 9 bit a 12 bit;
Il modulo adattatore è dotato di una resistenza pull-up, e si collega direttamente al GPIO del Raspberry Pi senza resistenza esterna;
Utilizza questo kit modulo adattatore per semplificare il collegamento del sensore di temperatura impermeabile al tuo progetto.
1. Punti chiave sul protocollo 1-Wire:
Linea dati singola:
È necessario un solo filo per la comunicazione tra il sensore e il microcontrollore.
Comunicazione half-duplex:
I dati possono essere inviati in entrambe le direzioni, ma solo una direzione alla volta.
Potere parassita:
Il DS18B20 può essere alimentato direttamente dalla linea dati durante la comunicazione, eliminando in alcuni casi la necessità di un'alimentazione separata.
Indirizzi di dispositivi univoci:
Ogni sensore DS18B20 ha un codice seriale univoco a 64 bit che consente al microcontrollore di identificare e indirizzare i singoli sensori sul bus.
Passaggi di comunicazione con un DS18B20:
1.1 Reimpostare l'impulso:
Il microcontrollore avvia la comunicazione abbassando la linea dati per una durata specifica (resettare l'impulso).
1.2 Impulso di presenza:
Se sul bus è presente un DS18B20, risponderà con un breve impulso, indicandone la presenza.
1.3 comando ROM:
Il microcontrollore invia un comando ROM per leggere il codice univoco a 64 bit di un sensore specifico (“Corrispondenza ROM”) o per indirizzare tutti i sensori sul bus (“Camera delle navi”).
1.4 Comando di funzione:
A seconda dell'operazione desiderata (come leggere la temperatura), il microcontrollore invia un comando di funzione specifico al sensore.
1.5 Trasferimento dati:
I dati vengono trasmessi bit per bit, con il sensore che tira la linea dati in basso per inviare a ‘0’ e lasciare che la linea vada in alto per inviare un "1".
2. Spiegazione dettagliata del protocollo di comunicazione a 1 filo di DS18B20
Il motivo per cui i sensori DS18B20 sono ampiamente utilizzati è in gran parte dovuto al suo protocollo di comunicazione unico – 1-Protocollo di comunicazione Wire. Questo protocollo semplifica i requisiti per le connessioni hardware e fornisce un modo efficiente per trasmettere dati. Questo capitolo analizzerà profondamente il meccanismo di lavoro e il processo di scambio di dati del protocollo di comunicazione a 1 linea per porre una solida base per la successiva pratica di programmazione.
2.1 Nozioni di base sul protocollo di comunicazione a 1 filo
2.1.1 Caratteristiche del protocollo di comunicazione a 1 filo:
Il protocollo di comunicazione a 1 filo DS18B20 è anche chiamato “singolo autobus” tecnologia. Ha le seguenti funzionalità: – Comunicazione per autobus singolo: Viene utilizzata una sola linea di dati per la trasmissione di dati bidirezionale, che riduce notevolmente la complessità del cablaggio rispetto al tradizionale metodo di comunicazione del sensore multi-filo. – Connessione multi-dispositivo: Supporta la connessione di più dispositivi su un bus dati, e identifica e comunica attraverso i codici di identificazione del dispositivo. – Basso consumo energetico: Durante la comunicazione, Il dispositivo può essere in uno stato di standby a bassa potenza quando non partecipa alla comunicazione. – Alta precisione: Con un tempo di trasmissione dei dati più breve, Può ridurre l'interferenza esterna e migliorare l'accuratezza dei dati.
2.1.2 Formato dei dati e analisi di temporizzazione della comunicazione a 1 filo
Il formato dei dati del protocollo di comunicazione a 1 filo segue una regola di temporizzazione specifica. Include i tempi di inizializzazione, Scrivi i tempi e leggi i tempi:
Tempistica di inizializzazione: L'host inizia prima i tempi di rilevamento della presenza (Pulse di presenza) Tirando giù l'autobus per un certo periodo di tempo, e il sensore invia quindi un impulso di presenza in risposta.
Scrivi i tempi: Quando l'host invia un tempismo di scrittura, prima tira giù l'autobus per circa 1-15 microsecondi, Quindi rilascia l'autobus, e il sensore tira giù l'autobus 60-120 Microsecondi per rispondere.
Leggi i tempi: L'host avvisa il sensore di inviare dati tirando giù il bus e rilasciandoli, e il sensore emetterà il bit di dati sul bus dopo un certo ritardo.
2.2 Implementazione software della comunicazione dati
2.2.1 Inizializzazione e ripristino della comunicazione su 1 linea
A livello di software, l'inizializzazione e il ripristino della comunicazione 1-Wire rappresentano il primo passo della comunicazione. Quello che segue è lo pseudo codice per implementare questo processo:
// Funzione di inizializzazione della comunicazione OneWire
annullare OneWire_Init() {
// Impostare il bus in modalità ingresso e abilitare la resistenza pull-up
Imposta modalità pin(DS18B20_PIN, INPUT_PULLUP);
// Aspetta che l'autobus sia fermo
RitardoMicrosecondi(1);
// Invia un impulso di reset
OneWire_Reset();
}
// Funzione di ripristino della comunicazione OneWire
annullare OneWire_Reset() {
// Abbassa l'autobus
Imposta modalità pin(DS18B20_PIN, USCITA_BASSA);
RitardoMicrosecondi(480);
// Rilascia l'autobus
Imposta modalità pin(DS18B20_PIN, INPUT_PULLUP);
RitardoMicrosecondi(70);
// Attendere la presenza di un impulso
Se (!WaitForOneWirePresence())
// Non è stato rilevato alcun polso, forse il sensore non è collegato o l'inizializzazione non è riuscita
HandleError();
RitardoMicrosecondi(410);
}
// In attesa della presenza di un impulso
bool WaitForOneWirePresence() {
restituire ReadPin(DS18B20_PIN) == 0; // Supponiamo che il livello basso sia una presenza di segnale
}
2.2.2 Operazioni di lettura e scrittura dei dati
Le operazioni di lettura e scrittura dei dati sono la parte centrale della comunicazione dei sensori. Il codice seguente mostra come scrivere un byte su un bus a un filo:
// Scrive un byte su un bus a un filo
annullare OneWire_WriteByte(dati in byte) {
per (int io = 0; io < 8; I ++) {
OneWire_WriteBit(dati & 0X01);
dati >>= 1;
}
}
// Scrivi un po' su un bus a un filo
annullare OneWire_WriteBit(dati in bit) {
Imposta modalità pin(DS18B20_PIN, USCITA_BASSA);
Se (dati) {
// Rilascia il bus mentre scrivi 1
Imposta modalità pin(DS18B20_PIN, INPUT_PULLUP);
RitardoMicrosecondi(1);
} altro {
// Continua a tenere il bus basso mentre scrivi 0
RitardoMicrosecondi(60);
}
Imposta modalità pin(DS18B20_PIN, INPUT_PULLUP);
RitardoMicrosecondi(1);
}
La prossima è la funzione per leggere un byte:
// Legge un byte dal bus unifilare
byteOneWire_ReadByte() {
byte di dati = 0;
per (int io = 0; io < 8; I ++) {
dati >>= 1;
Se (OneWire_ReadBit())
dati |= 0x80;
}
restituire dati;
}
// Leggi un po' dal bus a un filo
bitOneWire_ReadBit() {
Imposta modalità pin(DS18B20_PIN, USCITA_BASSA);
Imposta modalità pin(DS18B20_PIN, INPUT_PULLUP);
RitardoMicrosecondi(3);
risultato bool = ReadPin(DS18B20_PIN);
RitardoMicrosecondi(57);
risultato restituito;
}
2.2.3 Meccanismo di verifica della comunicazione OneWire
Il protocollo di comunicazione OneWire utilizza un semplice meccanismo di verifica nel processo di scambio dei dati, solitamente rileggendo i dati scritti per verificare la correttezza dei dati. Di seguito è riportato un codice di esempio per verificare i dati scritti:
byte di dati = 0x55; // Supponiamo che i dati da inviare
OneWire_WriteByte(dati); // Scrivi i dati sul bus OneWire
byte readData = OneWire_ReadByte(); // Rileggere i dati dal bus OneWire
Se (readData != dati) {
HandleError(); // Se i dati riletti non corrispondono ai dati scritti, gestire l'errore
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt





