
Pokud nepomůžou nové patice, tak vykuchám ten zdroj.
Na L293D piny 8 a 16 nejsou propojeny ani prohozeny.Napájení motorú jde samostatným kabelem na kolíkovou lištu hned vedle vstupního pinu H můstku(pin 8)
Dneska mi přišel nový LCD displej, tak jsem ho tam vrznul a nechal zobrazovat data, která přichází po I2C od ultrazvuku.Zobrazovali se mi jen znaky +++++.
Pak jsem do proměnné označenou c do které se ukládá přijaté data se sběrni natvrdo napsal číslo 5 a nechal ho zobrazit na displeji.Vysledkem byli dvě čárky ||
Na začátku jsem ještě zkoušel zobrazit nápis "hello world" dle ukázkového programu na stránkách arduina a vše bylo v poho.
Přikládám programy které jsem použil, možná dělám chybu také tam.Podotýkám, že jsou to pouze testovací programy, abych vyzkoušel, jsestli se vůbec něco bude dít.
Také posílám schéma zapojení, ale je ton vyfocené a malované od ruky.Některé věci nejsou z hlediska technické dokumentace zcela správné, ale nepočítal jsem s tím, že se nato kromě mé osoby bude někdo koukat

Ta dioda se může dát i přímo na kabel mezi baterii a svorkovnici pro vstup do stabilizátoru, že?Zárověň by to slouží i jako ochrana proti přepolování.Na vstupu mám kondík LOW ESR 100uF 35V, ale nachystaný i 470uF, který jsem tam nakonec nedal.Vyzkouším i tuhle variantu.
Moc děkuju za rady, snad něco zabere.
SLAVE:
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(11, 12, 10, 9, 8, 7);
void setup()
{
lcd.begin(16, 2);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
Wire.begin(5);
Wire.onReceive(receiveEvent);
}
void loop()
{
}
void receiveEvent(int howMany)
{
char c = Wire.read();
lcd.print(c);
if(c <10)
{
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
}
else if(c >18)
{
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
}
else if(c>10&&c<18)
{
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
}
}
MASTER:
#include <Wire.h>
const int pingPin = 7;
void setup()
{
Wire.begin();
}
void loop()
{
long duration, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
pinMode(pingPin, OUTPUT);
cm = microsecondsToCentimeters(duration);
Wire.beginTransmission(5);
Wire.write(cm);
Wire.endTransmission();
delay(600);
loop();
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
Na vzhled cestiček se moc nedívejte, maluju to lakem na auta od ruky a pak leptám v kyselině solné s peroxidem.