Re: Rušení
Napsal: 07 led 2014, 19:51
Tak dneska jsem zkoumal patice a vývody obvodů.Patice je v plošném spoji narvaná silou to přiznávám, protože při vrtání mi některá díra ujela bokem.Nicméně jsem všechny vývody narovnal a znovu zasunul, ale i tak to tam nemůžu normálně strčit, musím to opravdu ke konci rvát aby si to trochu sedlo do té patice.Taky jsem včera zkoušel 10x robota zapnout a vypnout a pak jsem pohýbal s intergákama a znovu to zapínal a vypínal.Po novém usazení obvodů bylo chování částečně odlišné a setrvávalo při téměř při všech 10ti zapnutích.Takže jsem si objednal nové patice, tentokrát v klasickém provedení, nyní mám precizní.Možná se problém vyřeší, ale patice budou až v pátek
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
Kreramické kondezátory 100nF ještě nejsou ve schématu zakresleny, ale na desce už jsou.
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.

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.