Arduino I2C (3 / 3 stap)

Stap 3: Program / Code


We gaan twee sets van code schrijven
De master code en de code van de slaaf.
De meester schrijft in principe opdrachten en de slaaf leest ze en gehoorzaamt. De meester en slaaf erkennen elkaar door het gebruik van de functie code bijvoorbeeld die de modbus functie code 05 instellen in de master vertellen de slaaf te dwingen een uitgang. Dus is de functie code instelling voor de meester hetzelfde voor de slaaf.

Zullen we hier de Wire.h bibliotheek gebruiken. Als het niet in uw mediabibliotheek dat kunt u het downloaden van de website Arduino.cc.

Vergeet niet de drukknop is aangesloten aan de kapitein en de LED is aangesloten op de slaaf, dus wanneer u de knop die de kapitein de slaaf geeft een opdracht om te schakelen op de LED, en wanneer u opnieuw duwen een andere opdracht geeft naar het uitschakelen van de LED.

 <pre>#include //include the wire library MASTER CODE<br> 
 int state;//state of the pushbutton int PB=3;//declare pushbutton pin on master arduino 
 int current;//current state of pushbutton 
 void setup() { Serial.begin(9600);//set the serial baudrate Wire.begin();//begin the wire library 
 } 
void loop {staat = (digitalRead(PB)); / / staat leest de waarde bij pin3 als (staat == HIGH & & huidige == LOW) //if de staat is hoog en de knop huidige laag is {Wire.beginTransmission (5); //begin transmissie (kracht uitgang) Wire.write (hoog); //master schrijft een hoge waarde Wire.endTransmission(); / / end transmissie staat = laag; //set staat te laag stroom = hoog; //current op hoog void loop() { state= (digitalRead(PB));// state reads the value at pin3 if(state==HIGH && current==LOW)//if the state is high and current button is low { Wire.beginTransmission(5);//begin transmission(force single output) Wire.write(HIGH);//master writes a high value Wire.endTransmission();// end transmission state=LOW;//set state to low current=HIGH;//current to high } else if(state==HIGH && current == HIGH)//if state is already high and current is high too { Wire.beginTransmission(5);//begin transmission Wire.write(LOW);//master writes low value Wire.endTransmission();// ends transmission state=HIGH;//set state to high current=LOW;//set current to low } anders als (staat == HIGH & & huidige == HIGH) //if staat is al hoog en huidige ook hoge {//begin transmissie Wire.write (laag), Wire.beginTransmission (5); //master schrijft laagwaardige Wire.endTransmission(); / / transmissie staat eindigt = hoog; //set staat te hoge stroom = laag; //set huidige te laag } 
 <pre>#include //include wire library //SLAVE CODE<br> 
 int LED=3;//declare led pin as pin3 on slave arduino 
 void setup() { Serial.begin(9600);//begin serial monitor and set baudrate Wire.begin(5);//start wire library, with address 5 (force single output) Wire.onReceive(Event);//set to recieve variable pinMode(3,OUTPUT);//set pin3 as output pin digitalWrite(3,LOW);//set output pint to low // put your setup code here, to run once: 
 } 
 void loop() { // put your main code here, to run repeatedly: 
 } void Event(int number)//start an event { while(Wire.available())//if wire is avaliable { int state=Wire.read();//state read the recived command from master, high or low if(state==HIGH)//if state reads high from master { digitalWrite(LED,HIGH);//slave will obey master and set ouput to high } else if(state==LOW)//but if slave reads low from master { digitalWrite(LED,LOW);//slave will obay and set output to low. } } } I am making a four wheel robot using two H-bridges which takes 12 digital ports and an uno only has 13, so i decided on using 2 arduinos, the sensors will be connected to the master and h-bridge to the slave.when the robot is comlete i will upload it here as well. I want it to work like a bobCAT :P, so i need to have individual control over all 4 wheels. please, leave all questions as comments and i will reply. Thank you. 
void (int-nummer) gebeurtenis //start een gebeurtenis {while(Wire.available()) //if draad is beschikbaar {int state=Wire.read (); //state Lees de recived opdracht van meester, hoog of laag if(state==HIGH) //if staat leest hoog van meester {digitalWrite (LED, hoge); //slave wil gehoorzamen output van de master en instellen op hooganders if(state==LOW) //but als slaaf leest laag van meester {digitalWrite (LED, laag); //slave zal output van het obay en instellen op laag.}

Gerelateerde Artikelen

Scannen van de Arduino I2C-Bus voor aangesloten I2C apparaten met Visuino

Scannen van de Arduino I2C-Bus voor aangesloten I2C apparaten met Visuino

I2C Apparaten en Modules zijn overal verkrijgbaar en erg populair in Arduino projecten. Elk I2C -apparaat heeft een adres meestal vaste of configureerbaar door jumpers. Wanneer u werkt met de I2C -apparaat, is de eerste taak ontdekken wat is adres va
Klok met thermometer met behulp van Arduino, i2c 16 x 2 lcd, DS1307 RTC en DHT11 sensor.

Klok met thermometer met behulp van Arduino, i2c 16 x 2 lcd, DS1307 RTC en DHT11 sensor.

Hello! Het is al een tijdje ik heb niet geplaatst om het even wat op Instructables, maar nu maakte ik een eenvoudig project dat ik op internet in verschillende vormen gezien heb. Ik erin geslaagd om een code met behulp van andere codes die ik op inte
Arduino I2C Master en Breakout

Arduino I2C Master en Breakout

Na het succes van mijn Arduino Uno I2C Master boord begon ik te denken dat ik de Raad van bestuur zou kunnen verbeteren. Nou... het meer extensible voor een ding, en ik wil het gebruiken van de Raad van bestuur voor andere dingen ook. Ik dacht dat al
Arduino I2C LCD-stuurprogrammabibliotheek en PackMan

Arduino I2C LCD-stuurprogrammabibliotheek en PackMan

Dit project is een uitgebreide Arduino-poort van een eerdere Instructable die u hier vindt;Die snappily was getiteld...'Microchip PIC Library to Control een 20 door 4 LCD over I2C'Het is mijn eerste gaan in het schrijven van een C++ Arduino Library d
TMP37 van de Arduino I2C Temperatuurdisplay

TMP37 van de Arduino I2C Temperatuurdisplay

Hier is een eenvoudige basis voor een temperatuur controller op basis van Arduino en een TMP37 heeft temperatuursensor. Met behulp van een enkele analoog-naar-digitaal-input en een I2C LCD-scherm.Stap 1: Hoe het werktTMP37 Specificaties en Pin aanslu
Dual-Arduino I2C Temperatuurdisplay

Dual-Arduino I2C Temperatuurdisplay

Met behulp van Arduinos is geweldig en alles, maar wat gebeurt er als je van pinnen uitgeput? Tuurlijk, je kon kopen een Mega, maar wat als u al een paar Unos, of misschien sommige Micros? Er is een handige protocol in de elektronica tegenwoordig, en
Arduino I2C display PIN foutopsporing

Arduino I2C display PIN foutopsporing

Welkom bij mijn poging om een eerste Instructable. Ik doe dit omdat ik een goedkope waardeloze I2C LCD voor Arduino off van eBay kocht en bracht enkele uren proberen het aansluiten. Zoals verwacht de verschrikkelijke instructies deed niets voor mij e
Arduino Nano: I2C Matrix toetsenbord met PCF8574/PCF8574A GPIO en Visuino

Arduino Nano: I2C Matrix toetsenbord met PCF8574/PCF8574A GPIO en Visuino

Matrix Keypads behoren tot de eenvoudigste en meest populaire manieren om het toetsenbord gegevens invoeren in de Arduino type micro-controllers. Ik maakte al een Instructable tonen hoe u toetsenbord kunt verbinden met Arduino Nano. Downside is dat o
ATTiny84 - I2C-Slave - Arduino UNO

ATTiny84 - I2C-Slave - Arduino UNO

Ik heb gewerkt aan het opbouwen van de stukken die ik nodig om mezelf een CNC PCB molen voor een tijdje nu en het volgende deel van de puzzel is probeert te krijgen van de Arduino te controleren 3 stap motoren tegelijk. Aangezien de architectuur bied
Arduino "Atomic" grootvader Klok

Arduino "Atomic" grootvader Klok

Ik wilde een electro-mechanische grootvader Klok die niet meer vereist wikkelen en corrigeren van elke week maar die keek en klonk zo origineel mogelijk.Zie mijn site hier Longcase klok WebsiteDit Instructable laat zien hoe Arduino gecontroleerd anal
I2C relais boord

I2C relais boord

Relais zijn een van de meest voorkomende interfaces tussen een micro-controller en de buitenwereld. Het biedt elektrische isolatie tussen de laagspanning schakelingen voor de micro-controller en de lasten.Dus waarom deze grappige I2C relais boord, ku
MPU-9150/9250 IMU met Arduino Pro-Micro

MPU-9150/9250 IMU met Arduino Pro-Micro

U een 10-DOF sensor kopen bij aliexpress of ebay en problemen krijgen op lopende? Na een tijdje downloadde ik Jeff Rowberg bibliotheek en de uitvoer altijd bevriezen. Ik besloot om te zuiveren van de code, omdat de sensor MPU-9150 leek veelbelovend,
Stap voor stap handleiding op Micro goochelaar robot controller (compatibel met Arduino)

Stap voor stap handleiding op Micro goochelaar robot controller (compatibel met Arduino)

de Micro goochelaar uit DAGU is een low-cost Arduino compatibele controller speciaal ontworpen voor beginners die willen bouwen van een kleine robot. De Raad van bestuur heeft een aantal handige accessoires ingebouwd zodat schilden in de meeste geval
Controle van uw Robot met behulp van een Wii Nunchuck (en een Arduino)

Controle van uw Robot met behulp van een Wii Nunchuck (en een Arduino)

na het dragen van mezelf spelen van Wii Boksen, ik kreeg aan het denken zou het niet geweldig als ik zou kunnen dit gebruiken om te controleren mijn robot, (op zoek naar mijn linkerhand).Op zoek rond het internet vond ik een schare van mensen die soo