Hva er ledningen.Skrivefunksjon?

Hva er ledningen.Skrivefunksjon?
Wire -biblioteket i Arduino gir en enkel måte å utveksle data mellom I2C enheter. Wire-biblioteket tillater kommunikasjon mellom to eller flere enheter gjennom et to-tråds grensesnitt som er SDA og SCL. Wire Library har en funksjon som heter "Metalltråd.skrive()" som brukes til å sende data fra en enhet til en annen.

Her vil vi beskrive Arduino -ledningen.Skriv () -funksjonen og bruken av den i Arduino -programmering.

Hva er ledningen.Skriv () Funksjon

Arduino -ledningen.skriv () er en funksjon som hjelper Arduino -tavler til å sende data fra en enhet til en annen gjennom I2C -bussen. Funksjonen tar et enkelt argument, som er dataene som skal sendes. Dataene kan være i form av et heltall, et tegn eller en rekke heltall eller tegn.

Ledningen.skriv () -funksjonen sender data til I2C -bussen i binær form. Dette betyr at dataene blir sendt som en serie på 1s og 0s. Mottakende enheten tolker dataene basert på sin egen programmering og konverterer dem tilbake til et brukbart format.

Syntaks

Ledningens syntaks.Skriv () Funksjon er:

Når en heltallverdi må beståtes bruk:

Metalltråd.skriv (verdi);

Når en streng skal overføres ved hjelp av I2C -kommunikasjon:

Metalltråd.skriv (streng);

Når en spesifikk data om slik som matriser av byte med spesifikk lengde skal sendes bruk etter syntaks:

Metalltråd.skriv (data, lengde);

Parametere

  • verdi: Enkeltbyteverdi.
  • streng: Streng for å sende som byte.
  • data: Data -matrise som skal sendes.
  • lengde: Ingen av byte å overføre.

Komme tilbake

Total leste byte fra data.

Hvordan gjør ledningen.Skriv () Funksjonsarbeid

Å bruke ledningen.Skriv () -funksjonen, du må først initialisere I2C -bussen ved hjelp av ledningen.Begynn () Funksjon. Denne funksjonen setter opp kommunikasjonen mellom de to enhetene.

Når I2C -bussen er initialisert, kan du bruke ledningen.Skriv () Funksjon for å sende data. Funksjonen tar dataene du vil sende som argument.

For eksempel, For å sende et nummer 42 til en annen enhet, vil du bruke følgende kode:

Metalltråd.skriv (42);

Hvis du vil sende en rekke tegn, kan du bruke en rekke tegn i stedet:

Char MyString [] = "Hello World";
Metalltråd.skriv (myString);

Ledningen.Skriv () -funksjon kan også brukes til å sende flere verdier samtidig. For å gjøre dette, kan du bruke en rekke heltall:

int myArray [] = 1, 2, 3, 4, 5;
Metalltråd.Skriv (MyArray, SizeOf (MyArray));

I dette eksemplet, ledningen.skriv () -funksjonen sender hele rekke heltall til den andre enheten.

Hva er I2C -adressen for ledning.Skriv () Funksjon

I Arduino for å bruke I2C -kommunikasjonen mellom enheter, må du spesifisere enhetens adresse og dataene du vil sende. Koden for bruk av ledningen.Skriv () funksjon ser vanligvis slik ut:

Metalltråd.BeginTransmission (adresse);
Metalltråd.skrive (data);
Metalltråd.EndTransmission ();

I denne koden er "adresse" adressen til enheten du vil sende data til, og "data" er dataene du vil sende. Ledningen.BeginTransmission () -funksjonen initierer overføringen, ledningen.skriv () -funksjonen sender dataene, og ledningen.EndTransmission () -funksjonen fullfører overføringen.

Følgende artikler veileder om hvordan man kan sjekke I2C -adressen for enheter og grensesnitt dem med Arduino Board:

  • Hva er en I2C -buss i Arduino?
  • Hvordan grensesnitt LCD med Arduino ved bruk av I2C -modulen
  • Hvordan bruke flere I2C -enheter med Arduino
  • Hvordan skanne I2C -adresse ved hjelp av Arduino Nano

Ofte stilte spørsmål (vanlige spørsmål)

Spørsmål: Hva er forskjellen mellom ledningen.skriv () og ledning.sende()?

Ledningen.Skriv () -funksjonen og ledningen.Send () -funksjonen er funksjonelt ekvivalent. Den eneste forskjellen er i navnene deres.

Spørsmål: Kan jeg bruke ledningen.Skriv () Funksjon for å sende data til en bestemt enhet på I2C -bussen?

Nei, ledningen.Skriv () -funksjonen sender data til alle enheter på I2C -bussen. Hvis du vil sende data til en bestemt enhet, må du adressere den enheten ved hjelp av den unike adressen.

Spørsmål: Kan jeg bruke ledningen.Skriv () Funksjon for å sende data til et Arduino -brett fra en annen mikrokontroller?

Ja, hvis den andre mikrokontrolleren støtter I2C -protokollen og er koblet til den samme I2C -bussen som Arduino -styret.

Spørsmål: Hva er de maksimale dataene som kan overføres ved hjelp av ledningen.Skriv () Funksjon?

Maksimal datatråd.skrive () funksjonen kan sende er 32 byte.

Spørsmål: Hvordan mottar jeg data sendt ved hjelp av ledningen.Skriv () Funksjon?

For å motta data sendt ved hjelp av ledningen.skriv () -funksjonen, du må definere ledningen.Les () På mottaker Arduino -kode.

Konklusjon

Ledningen.Skriv () Funksjon i Wire Library for Arduino brukes til å sende data fra en enhet til en annen gjennom I2C -bussen. Ved å forstå det grunnleggende i trådbiblioteket, kan du begynne å bygge dine egne prosjekter som kommuniserer med andre enheter og sensorer.