I2C PROTOCOL

Hallo,

Ik ben bezig met een project waarbij ik een lift probeer te maken.

dit is hoe het moet werken. ik heb een arduino mega als master en en paar uno’s als slaves.

op de uno: zit een ir sensor, een button en 7 segment display aangesloten.

dus wat er moet gebeuren is als ik op de knop druk moet de liftkooi naar etage en de ir sensor detecteert het en zorgt er voor dat de motor stopt.

wat ik nodig heb is dat de mega steeds gaat vragen aan de slaves of er op de knop is gedrukt en of de lift al op die verdieping is. Dus als ik op de button druk moet die info naar de mega en dan gaat de mega de motor aan sturen.

dit moet gebeuren met i2c.

als je weet hoe dit moet laat me alsjeblieft weten.

Hoi shab-1r, en welkom.

Je hebt zojuist bijna dezelfde vraag ook in het Engels gesteld. Bijna, want in die vraag staat andere informatie, aangevuld met een begin van de code voor de Uno. Het is niet zo slim als je dacht om je vraag op verschillende plaatsen te stellen. Want daardoor ontstaan er dus 2 threads die allebei een heel andere kant op kunnen gaan. En dat maakt het nou juist niet gemakkelijker voor jou en ook niet voor de mensen die je willen helpen.

Ik vraag me tijdens het typen van dit antwoord al de hele tijd af waarom je een Mega nodig denkt te hebben, en meerdere Uno's. Dat kan een stuk compacter, en daarmee geodkoper. De taken van de Uno kun je bijvoorbeeld ook laten doen door een (pro)mini, en de Mega's taken moeten ook nog wel te doen zijn met een gewone Uno. Maar goed, dat is gewoon jouw keuze.

Verder ben je eigenlijk al goed begonnen. Want je hebt al een idee over hoe het systeem zou moeten gaan werken. Daar kun je gewoon mee door blijven gaan. Telkens een omschrijving maken van wat je wil doen. Vervolgens ga je beschrijven hoe je denkt dat je dat kunt oplossen. Daarbij zul je nieuwe uitdagingen tegenkomen, maar die kun je op dezelfde manier aanpakken. Zo breek je je grote vraagstuk op in kleine vraagstukjes, die op een gegeven moment ineens per stuk helemaal niet meer zo moeilijk op te lossen zijn. Op een gegeven moment heb je dan alle vraagstukken beantwoord, en hoef je dat "alleen maar" naar code om te zetten.

Dit werkt beter dan lukraak wat code pakken en dan te proberen aan te passen naar jouw wensen, ook al lijkt dat heel aantrekkelijk.

Iets om te lezen: Master Reader/Slave Sender

Je hebt nu drie draadjes voor dit probleem. Ik heb een moderator gevraagd om die in General te sluiten zodat er slechts twee zijn, een in engels en een in nederlands.

Waarom I2C? In de echte wereld zal dat niet worden gedaan omdat het in principe slechts korte afstanden kan overbruggen; iets van 25 cm.

het geheel kan natuurlijk met een mega, als je de opstelling wilt die je beschrijft zorg dan dat de afstanden niet te grooot worden. Zorg ervoor dat de mega als master staat en elke uno als slaaf. dan ga je in de loop telkens afsvragen of er iets is veranderd in een slaaf. zo ja verwerkt de info en vertel de slaaf dat de mega die info heeft.