Keresés

Részletes keresés

Prof Creative Commons License 2023.04.30 0 0 4241

Ez így cseppet több, mint 25000 forint.  Elvileg 1:1 visszatölthető a hestore-ba.

100.000.51 10 LED 5 mm D-RD
100.201.14 20 LED 5 mm D-GR
100.205.04 20 330 R 1%
100.205.17 30 1 K 1%
100.205.33 12 4,7 K 1%
100.205.41 20 10 K 1%
100.243.07 1 SJ-140
100.269.21 10 LED 5 mm D-BL
100.277.37 2 POM1615 LIN 10K B
100.285.26 1 SJ-60
100.285.27 3 BB-102 (630/200)
100.299.92 2 MCP23017-E/SP
100.355.35 2 BB-170W
100.357.19 1 RC-40-20/FF
100.357.20 1 RC-40-20/MF
100.357.21 1 RC-40-20/MM
100.365.05 4 RGBM5
100.422.72 2 AR-NANOCH
100.429.87 1 KC-1602-BB-I2C

Előzmény: Prof (4238)
Prof Creative Commons License 2023.04.30 0 0 4240

Ja, az rgb led NE neopixel legyen és lehetőleg legyen modulra szerelt, beépített előtétellenállásokkal.

Előzmény: Prof (4238)
Prof Creative Commons License 2023.04.30 0 0 4239

Amint írtam, fordított logikával mennek ki a grafikai információk. A kezdő nagy konstans mátrixban kell binárisan msb-ből lsb-t és minden lsb-ből msb-t csinálni, nyilván minden helyiértékkel. vagyis 00000001-ből lesz 10000000, 00000010-ból 01000000 stb. 255 ilyen kombináció van és praktikusan nem működik a keresés-csere. És mivel most hex van kódolva minden, egy darabig kell hozzá számolgatni, hogy kijöjjön... :-/

Előzmény: sanyi33nk (4236)
Prof Creative Commons License 2023.04.30 0 0 4238

Szia,

 

Kezdőkészlet tök felesleges. Ha van konkrét cél, érdemes egyből arra lőni. Ha tényleg semmid nincs, akkor azért különösen az elején nehéz dolgod lesz, mert míg nekem megfelelő műszerezettséggel kb. 10 perc lenne kideríteni, hogy egyáltalán működhet-e a cucc, neked adott esetben ez napokba telhet (ha sikerül egyáltalán). De nézzük a minimált:
-- Arduino kártya, mindegy melyik. Nekem az egyszerűbb kezelhetőség miatt inkább a NANO jött be annak idején, de nincs jelentősége, A gyártó lényegében mindegy, itthon is kapni normális klónokat -- ebből én eleve kettőt javaslok,

-- breadboard (próbapanel, lyukpanel), nagy 2-3 darab, és 1-2 kicsi,

-- jumper kábelek, minden létező kombinációban (apa-apa, anya-apa, anya-anya), lehetőleg a hosszabbak,

-- breadboard belső kábelek (csupaszolt végű merev kábelek méretre vágva és meghajtogatva),

-- 330 ohmos, 1 kiloohmos, 4,7 kiloohmos és 10 kiloohmos ellenállások, ezekből ilyen 20-30 darab típusonként,

-- tetszőleges színű, de lehetőleg nem fehér ledek, teszteléshez az 5 mm-es matt bőven megteszi,

-- egy tetszőleges RGB led, mindegy, milyen (közös anód vagy közös katód),
-- esetleg valami kijelző, 2x20, esetleg 4x20 alfanumerikus, vagy valami egyszerű grafikus oled. I2c buszos egyszerűbb,
-- meg a szenzorok, de én nem négyet vennék egy féléből, hanem vennék vagy 4-6 félét (teljesen eltérőeket), és letesztelném mindegyiket, aztán a top 2-ből venném meg a kívánt mennyiséget,

-- én vennék egy tök alap multimétert, illetve ha komolyan gondolod, valami tök alap tápot, ez utóbbi lesz a legdrágább az egészben, de ez is csak pár tízezres nagyságrend).

 

Ez így a műszerek nélkül szerintem kb. 30 ezer forintból kijön.

 

Ezt a 4 portos micsodát felejtsd el, inkább adok egy MPC23016-ot. Már ha van (kellene legyen).

 

U.i.: lehet, hogy lesz garázsvásár egy megszűnt műhelyben, ott azért szemmel láthatót lehetne spórolni.

Előzmény: slyder20 (4237)
slyder20 Creative Commons License 2023.04.30 0 0 4237

Egyenlőre én is csak tapogatózom. Rég szemezgetek arduinos cucokkal, szeretek kisérletezgetni, de eddig még nem jutottam el odáig , hogy beszerezek ilyesmit.

Úgy döntöttem bele vágok. Most má csak az a kérdésem lenne, hogy ez a két modul mellé pontossan mire van még szükségem.

Kb nagyvonalakban ez lenne a terv, persze mék két érzékelővel.

 

Gondolkodom egy kezdő készleten, szerintetek jó lenne az nekem? Mi a helyzet a clónokkal, jók? Hogy tudom őket felismerni? A laka szine jelent valamit?(zöldes az eredeti, kék a klón?)

sanyi33nk Creative Commons License 2023.04.30 0 0 4236

 

Elnézést a kép miatt. 783_R3.2 kijelzőn  RPM = 1258 kellene látni.De igy látszik.

Előzmény: Prof (4227)
sanyi33nk Creative Commons License 2023.04.30 0 0 4235

 

 

Elnézést a vacak kép miatt. 783_R3.2 kijelzőn RPM = 1258 szöveg látható a fura forditott kijelzéssel.

Előzmény: sanyi33nk (4224)
Prof Creative Commons License 2023.04.30 0 0 4234

Hali,

 

Megnéztem ezt a kódot és... No. Van benne hiba és logikátlanság gazdagon.

Mindamellett, hogy semmit sem tudunk a kijelzőről (ilyen kóddal nem találtam semmit), marad az, hogy vaktában, a kód alapján tapogatózva tippelek. Ha igaz, amire a kódból következtetni lehet, hogy egy PCF8558 meghajtó IC-vel van dolgounk, akkor -- kép híján -- én csak arra tudok gondolni, hogy MSB/LSB csere van. Vagyis a grafikus tartalmat sorok tekintetében jó, de oszlopok tekintetében fordított sorrendben küldöd ki. Ezért látszik minden tükörfordítottnak.

A kód elején van pár definíció, de nincsenek használatban. Ezekből ki lenetne használni valamit direkt írással. Legalábbis az adatlapból az derül ki, hogy van egy regiszter, amivel az írás, pontosabban a címzés módszertanát lehet állítani, de erre nem vennék mérget.

 

Előzmény: sanyi33nk (4224)
Prof Creative Commons License 2023.04.29 0 0 4233

Szia,

 

Sok-sok valószínűleg érthetetlen szakmai bizbasz lesz most itt, de nézz kicsit utána, ha gondolod. De enélkül is értelmezhetőre próbálom írni.

 

Pár éve volt egy projektem, amiben volt egy ehhez kísértetiesen hasonló feladat. De ennyire nem szaladok előre.

 

A legfontosabb problémára Alpári Gnác már nagyon helyesen rávilágított. A kérdés az, hogy bárhogy is átlöki-e a schmitt-triggert a lehulló mag vagy sem. Ezt kizárólag teszteléssel lehet ellenőrizni. Alap javaslataim: a bemenő és a kimenő sugár legyen teljesen leárnyékolva egymástól. Valahogy így. Maga a mag is lehetőleg egy teljesen zárt részben csusszanjon végig ne túlságosan nagy sebességgel. Rengeteg fog múlni a mag méretén és sebességén. Ennél számottevően nagyobb volt az érzékelendő tárgy az én projektemben, és ott is gond volt az érzékelhetőséggel az időtengelyen.

Az érzékelés úgy fog zajlani, hogy a közelségérzékelő hangolásával (erre való a kis potméter) be lehet állítani, hogy milyen értéknél billenjen át passzív állapotból aktív állapotba a schmitt-trigger. Nem tartom kizártnak, hogy működni fog, de nagyon nem mindegy, hogy hogyan oldod meg a fényutakat. Én leginkább egy V-alakú megoldást csinálnék, ahol a V alján van egy kis jó fényvisszaverő tulajdonságú rész, ami előtt a mag elhalad, és a V két szára viszont matt, tehát kevés fényt ver vissza. Ideális esetben az elhaladó mag a fényút jelentős részét kitakarja, így jelentősebb csökkenést idéz elő az érzékelő kimenetén (ami aztán beindítja a triggert). 

Szkóp és némi gépészkedés praktikus lesz hozzá.

 

Nézzük az időtengelyt. Ehhez tudni kellene, hogy a vetőgép normálisan egyszerre vagy ütemesen engedi-e le a magokat, illetve azt is, hogy ez a működése befolyásolható-e valahogy. Nekünk ugyanis jobb lenne, ha nem egyszerre kellene figyelni, hanem valami belátható, de nem végtelenül hosszú eltéréssel. Ez mondjuk 0,2 mp eltérésnél már bőven elég. Ugyanakkor minél nagyobb esélye van annak, hogy egyszerre érkezik két érzékelendő mag, annál nehezebb megoldani a dolgot (egy bizonyos ponton felül az Arduino önmagában már nem is lesz rá alkalmas). Bár konkrét időket még nem tudunk, az nagyon valószínű, hogy valamilyen megszakításra lesz szükség. Ennek a lényege az, hogy nem konkrétan a bemenet állapotát kérdezzük le (ez az Arduino keretrendszerben normális szintaktikával és az Arduino "kódolási konvenció" mentén fájdalmasan sok idő, valószínűleg a többszöröse annak, mint amennyi ideig a mag az érzékelő előtt halad), hanem a kódtól függetlenül egy kitüntetett bemenet állapotváltozását figyeljük. Ha változik az állapot, akkor vizsgálgatjuk nagyon gyorsan, hogy mi is történt. A gond itt jelentős, az Arduino legtöbb paneljén kettő darab interrupt pin van, ami nyilván 4 bemenethez édeskevés. Felfelé lehet lépni, a Mega2560 már jobb e tekintetben (6 pin), vagy például a Nano Every, de az, hm. Szóval már más liga és nem nagyon fogsz kínai klónt találni belőle. Ha a pénz e tekintetben nem gond, akkor én azt mondanám, hogy vagy nem Arduino keretrendszerben csinálnám meg, hanem pl. egy STM Nucleo kártyával (az összes láb interruptolható nagyon kevés kivétellel). Ha marad az Arduino, akkor két út van. Vagy a Mega, vagy az, hogy az érzékelők (pontosabban a schmitt-trigger kimenete) és az MCU közé raksz valamit, ami figyel. Ilyen lehet pl. az MPC23016 vagy az MPC26S16. Én korábban ezzel dolgoztam, bár nem azzal a logikával, ami ide jó lenne. Meg kell nézni, hogy tudja-e, amit tudnia kell, de most sem agyam, sem időm nincs végignézni az adatlapot. A lényeg az, hogy felparaméterezhető úgy, hogy 4 lábat figyeljen és ha bármelyiken jön jelzés, akkor egyből küld egy interrupt jelet, amit az Arduino egy lábon figyel, és ha megjön, akkor soron kívül lekérdezheti, hogy mi történt, és beavatkozhat, hogy onnantól mást vagy máshogy figyeljen. Alapvetően filléres alkatrész és elfogadhatóan van implementálva az Arduino keretrendszerbe.

 

Végül a hardverek. A négy csatornás cucc az négy darab egy csatornás cucc összerakva úgy, hogy nem egy darab egy csatornás schmitt-trigger van, hanem egy tokban négy. Semmi előnye. Plusz nem találtam róla dokumentációt, nem tudni, hogy milyen IC van rajta (sok mindent nem determinál mondjuk). Az első linken küldött kapu szerintem működhet, valamivel jobb, mint a másik, de köré kell építeni eléggé. Hátránya, hogy fix benne az érzékenység, nem tudsz játszani vele, mint a másiknál (mondjuk cserébe valószínűleg sokkal érzékenyebb). De igazából az egész azon áll vagy bukik, hogy találsz-e olyan érzékelőt, amelyik 100 százalék megbízhatósággal érzékeli az áthaladó magot. A többi kódolás és pár alkatrész kérdése.

Előzmény: slyder20 (4231)
Alpári Gnác Creative Commons License 2023.04.29 0 0 4232

Ez egy infra sorompó.

Hogy a lehulló mag hatására történik-e bármi, az sok mindentől függ, először is a mag méretétől.

Kukoricával lehet, hogy működni fog, kisebb maggal nem hiszem.

Ki kell próbálni először egy darabbal, aztán tovább lépni.

Előzmény: slyder20 (4231)
slyder20 Creative Commons License 2023.04.29 0 0 4231

Lényegében egy ültető gépre szeretnék érzékelőt, ami figyeli hogy hullik e a mag. 4 soros, azért kellene 4 érzékelő. Ha áthalad mag, akkor villanyon fel egy led, esetleg még ha bizonyos időn belül nem történik semmi, akkor világítson egy piros led. De ez má csak hab lenne a tortán

Előzmény: sanyi33nk (4230)
sanyi33nk Creative Commons License 2023.04.29 0 0 4230

Nem látom jól a feliratokat. És a kapcs.rajzot sem ismerem.De feltételezem ,hogy az optocsatoló dióda oldalán van egy 300-500 ohmos áramkorlátozó ellenállás.

 

Ha a bemenetre +5V kerül akkor a LED világit. A vevő oldalon a tranzisztor kinyit és a kimeneten 0 szint jelenik meg. A kimeneti oldalra nem kell a pár kilós ellenállás.

 

A müködtető programnál a négy optocsatoló kimenetet kell figyelni. A négy kimenetet  4 digitális választott D0 - D13 csatlakozóbol lehet választani. A négy csatlakozót

 

pinMode(13,INPUT) kell megadni.Ha kéred szivesen megirom a program kódot ,ha részletesen leirod mit is szeretnél csinálni.

 

Előzmény: slyder20 (4223)
Alpári Gnác Creative Commons License 2023.04.29 0 0 4229

Mi lenne a megvalósítandó feladat?

Előzmény: slyder20 (4228)
slyder20 Creative Commons License 2023.04.29 0 0 4228
Előzmény: Prof (4226)
Prof Creative Commons License 2023.04.28 0 0 4227

Egy kép jól jönne a működő kijelzőről, amin a konkrét hiba is látszik.

Előzmény: sanyi33nk (4224)
Prof Creative Commons License 2023.04.28 0 0 4226

Képről és ennyiből elég nehéz adekvát választ adni, de alapvetően igen, lehet. De legalább egy adatlapot vagy linket küldenél, akkor nem a képről kellene barchobázni.

Előzmény: slyder20 (4223)
Alpári Gnác Creative Commons License 2023.04.28 0 0 4225

Mármint hogy az alsóból 4-et rá lehet-e kötni egy MCU-ra?

 

Nyilván rá lehet.

Előzmény: slyder20 (4223)
sanyi33nk Creative Commons License 2023.04.28 0 0 4224

Egy ASHSC783 R3.2 i2C kijelzővel bajlódok. 0x3D a cim ezt szkenneltem a soros monitoron.

 

+5V GND SDA SCL csatlakozói vannak. SDA Arduino A4 SCL A5 -re csatlakozik

 

a kód:

------

 

#include "Wire.h"
// I2C: (0x3D) Adress  Lcd chip: based on PCF8558


#define LCD_ADR 0x3d 
#define BLANK_MODE B00000000
#define NORMAL_MODE B00000001 // B00001001
#define POWER_DOWN_MODE B00000010
#define ALL_ON_MODE B00001000
#define HALF_CONTRAST_MODE B00001000
#define HALF_MIRROR_MODE B00010001

#define I2C_BUFFER 30


static const uint8_t System5x7[]/* PROGMEM*/ = {
0x00, 0x00, 0x00, 0x00, 0x00,// (space)
0x00, 0x00, 0x5F, 0x00, 0x00,// !
0x00, 0x07, 0x00, 0x07, 0x00,// "
0x14, 0x7F, 0x14, 0x7F, 0x14,// #
0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
0x23, 0x13, 0x08, 0x64, 0x62,// %
0x36, 0x49, 0x55, 0x22, 0x50,// &
0x00, 0x05, 0x03, 0x00, 0x00,// '
0x00, 0x1C, 0x22, 0x41, 0x00,// (
0x00, 0x41, 0x22, 0x1C, 0x00,// )
0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
0x08, 0x08, 0x3E, 0x08, 0x08,// +
0x00, 0x50, 0x30, 0x00, 0x00,// ,
0x08, 0x08, 0x08, 0x08, 0x08,// -
0x00, 0x60, 0x60, 0x00, 0x00,// .
0x20, 0x10, 0x08, 0x04, 0x02,// /
0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
0x00, 0x42, 0x7F, 0x40, 0x00,// 1
0x42, 0x61, 0x51, 0x49, 0x46,// 2
0x21, 0x41, 0x45, 0x4B, 0x31,// 3
0x18, 0x14, 0x12, 0x7F, 0x10,// 4
0x27, 0x45, 0x45, 0x45, 0x39,// 5
0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
0x01, 0x71, 0x09, 0x05, 0x03,// 7
0x36, 0x49, 0x49, 0x49, 0x36,// 8
0x06, 0x49, 0x49, 0x29, 0x1E,// 9
0x00, 0x36, 0x36, 0x00, 0x00,// :
0x00, 0x56, 0x36, 0x00, 0x00,// ;
0x00, 0x08, 0x14, 0x22, 0x41,// <
0x14, 0x14, 0x14, 0x14, 0x14,// =
0x41, 0x22, 0x14, 0x08, 0x00,// >
0x02, 0x01, 0x51, 0x09, 0x06,// ?
0x32, 0x49, 0x79, 0x41, 0x3E,// @
0x7E, 0x11, 0x11, 0x11, 0x7E,// A
0x7F, 0x49, 0x49, 0x49, 0x36,// B
0x3E, 0x41, 0x41, 0x41, 0x22,// C
0x7F, 0x41, 0x41, 0x22, 0x1C,// D
0x7F, 0x49, 0x49, 0x49, 0x41,// E
0x7F, 0x09, 0x09, 0x01, 0x01,// F
0x3E, 0x41, 0x41, 0x51, 0x32,// G
0x7F, 0x08, 0x08, 0x08, 0x7F,// H
0x00, 0x41, 0x7F, 0x41, 0x00,// I
0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x7F, 0x02, 0x04, 0x02, 0x7F,// M
0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x46, 0x49, 0x49, 0x49, 0x31,// S
0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x7F, 0x20, 0x18, 0x20, 0x7F,// W
0x63, 0x14, 0x08, 0x14, 0x63,// X
0x03, 0x04, 0x78, 0x04, 0x03,// Y
0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x00, 0x00, 0x7F, 0x41, 0x41,// [
0x02, 0x04, 0x08, 0x10, 0x20,// ""
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
0x04, 0x02, 0x01, 0x02, 0x04,// ^
0x40, 0x40, 0x40, 0x40, 0x40,// _
0x00, 0x01, 0x02, 0x04, 0x00,// `
0x20, 0x54, 0x54, 0x54, 0x78,// a
0x7F, 0x48, 0x44, 0x44, 0x38,// b
0x38, 0x44, 0x44, 0x44, 0x20,// c
0x38, 0x44, 0x44, 0x48, 0x7F,// d
0x38, 0x54, 0x54, 0x54, 0x18,// e
0x08, 0x7E, 0x09, 0x01, 0x02,// f
0x08, 0x14, 0x54, 0x54, 0x3C,// g
0x7F, 0x08, 0x04, 0x04, 0x78,// h
0x00, 0x44, 0x7D, 0x40, 0x00,// i
0x20, 0x40, 0x44, 0x3D, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44,// k
0x00, 0x41, 0x7F, 0x40, 0x00,// l
0x7C, 0x04, 0x18, 0x04, 0x78,// m
0x7C, 0x08, 0x04, 0x04, 0x78,// n
0x38, 0x44, 0x44, 0x44, 0x38,// o
0x7C, 0x14, 0x14, 0x14, 0x08,// p
0x08, 0x14, 0x14, 0x18, 0x7C,// q
0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x48, 0x54, 0x54, 0x54, 0x20,// s
0x04, 0x3F, 0x44, 0x40, 0x20,// t
0x3C, 0x40, 0x40, 0x20, 0x7C,// u
0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x3C, 0x40, 0x30, 0x40, 0x3C,// w
0x44, 0x28, 0x10, 0x28, 0x44,// x
0x0C, 0x50, 0x50, 0x50, 0x3C,// y
0x44, 0x64, 0x54, 0x4C, 0x44,// z
0x00, 0x08, 0x36, 0x41, 0x00,// {
0x00, 0x00, 0x7F, 0x00, 0x00,// |
0x00, 0x41, 0x36, 0x08, 0x00,// }
0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
};


void setup()
{
Wire.begin();
Serial.begin(9600);
}


//fill 30bytes with b after that incr doesnt work, wire.h hs 32 data buf
void fill30(byte x, byte y, byte b)
{
int i;
Wire.beginTransmission(LCD_ADR);
Wire.write( y<<5|NORMAL_MODE );
Wire.write(x);
for(i=0; i<I2C_BUFFER; i++)
Wire.write(b);
Wire.endTransmission();
}

void cls()
{
int x,y;
for(y=0; y<5; y++)
for(x=0; x<=101; x+=I2C_BUFFER)
fill30(x,y,0x0);
}

void CharOut(int x, int y, byte c)
{
// font starts from 32
int i=0;
Wire.beginTransmission(LCD_ADR);
Wire.write( y<<5|NORMAL_MODE );
Wire.write(x);
for(i=0; i<5; i++)
{
uint8_t b= System5x7[(c-32)*5+i];
Wire.write( b );
}
Wire.endTransmission();
}

void TextOut(int x, int y, const char* str)
{ int i;
for(i=0; str[i]; i++)
CharOut(x+i*5, y, (byte)str[i]);
}

unsigned long timeb, frame_time;
unsigned long timea;

void loop()
{
char buf[16];

timeb= millis();
cls();

TextOut(8,11,"RPM =");
TextOut(35,11,"1250");
TextOut(55,11," [f/sec]");
int fps= 1000.0 / (float)( millis() - timeb );
sprintf(0,1,buf);
TextOut(0,3,buf); // fehér háttér
// TextOut(0,1,buf); // fekete háttér
delay(1000);
}

 

----------------------------------

 

Sajnos nem az igazi. Az RPM satöbbi balró jobbra minegy tükörböl lenne látható . Azt hiszem a kijelzőnek van saját karakterkészlete is.

// TextOut(0,1,buf)  esetén megjelenik tű-éles karakterekkel a felső sorban pár szimbólum. Mint sejthető ez egy mobil telóban élte előző életét.

 

Kérem a segitségüket!  

 

Köszönettel: Sándor

 

slyder20 Creative Commons License 2023.04.28 0 0 4223

Hali mindenki. Szeretnék összedobni egy projektet. Nézegetem a fotoelektromos infrás érzékelőket. Egyenlőre csak az érdrkelne, lehetne e 4 darab ilyen modult egy vezérlőre csatlakoztatni:

Ez lenne a modul. van hozzá 4 infra érzékelő, de nekem nem ilyen kellene , hanem ilyen:

Ez hogy lehetne kideriteni, működhet e ?

Előre is köszi a segitségert.

Alpári Gnác Creative Commons License 2023.04.28 0 0 4222

Ja, megnéztem és tényleg:)

Előzmény: Prof (4220)
Prof Creative Commons License 2023.04.28 0 0 4221

Csinálj egy tesztet úgy, hogy nem 3, hanem csak 2 számjegyet paraméterezel fel a setupban a kijelzőhöz, és ugyanezzel a kóddal íratod ki a 11-et. Ha felülvonás 11 lesz belőle, akkor az hardver, ha 71, akkor a könyvtár szar.

Előzmény: BerezPisti (4216)
Prof Creative Commons License 2023.04.28 0 0 4220

Jók azok, csak részben feleslegesek.

Most az jutott eszembe, hogy mi van, ha a nyomorék könyvtár az utolsó multiplex végén nem húz le mindent alaphelyzetbe, hanem csak az utolsó digit utolsó szegmensét hagyja aktívra. Jó nagy hülyeség lenne, de el tudom képzelni.

Előzmény: Alpári Gnác (4217)
Prof Creative Commons License 2023.04.28 0 0 4219

Ha még csak a net... Sajnos Ruzsinszki kolléga könyvében is találtam hibát.  Nem szignifikáns és igazából csak a fejfájás hosszát növeli.

Mondjuk elfüstölni nem fog miatta semmi.

Igazából tele kellene szórni a tápvonalat kapacitásokkal vastagon, mert siámn lehet, hogy az csap oda. Mondjuk ehhez mérni kellene.

Előzmény: Alpári Gnác (4214)
Prof Creative Commons License 2023.04.28 0 0 4218

Hát... :-/

Csodák vannak.

De vannak fizikai törvényszerűségek is, meg műszaki keretek is. Hiába kántálod, hogy 100 ohm-mal nem világított olyan szépen, ha közben kinyírtad az egyik frontendet valamelyik lábon.

Előzmény: BerezPisti (4213)
Alpári Gnác Creative Commons License 2023.04.27 0 0 4217

Hülyeséget írtam, hiszen nem vagy hajlandó korlátozni az áramot, úgyhogy semmiképpen se hagyd sokáig futni:)

Vagy tegyél be olyan ellenállásokat, amikkel épp csak látható a kijelző.

 

Jó, akkor most kommenteld ki az egész if miskulanciát és csak a szenzor beolvasást hagyd benne és írass ki valamit a loop végén.

Ha a setup-ban van Serial.begin() azt is vedd ki.

 

Most nincs időm végignézni, de valahogy a kapcsos zárójelek zavarosak.

Előzmény: BerezPisti (4216)
BerezPisti Creative Commons License 2023.04.27 0 0 4216

Ok ,a ez teszt lefut ,jó is csak nem érek sokat vele,mert ha

odaírom amit kellene csinálni ,megint feleslegese bekapcsolja az "A" szegmenset

mindent hagyok a setupban,csak aloopot írom,és mégis rossz...

nem értem...

a loop már csak ennyi ,minden felesleget kivettemvoid loop(){
    
int inc = digitalRead(12);
    
if((inc == HIGH) && (cnt < 100) && (inc != incPrev ))  //Increment
    {
      cnt++;
      
    }
    {
    int meter=(cnt*2);     
    sevseg.setNumber(111);  //Logic to print digit/character on 7 segment display
    sevseg.refreshDisplay();
    incPrev = inc;
  
  
{
   cnt = 0;}}}

 

111 helyett 711 -et ít

Előzmény: Alpári Gnác (4215)
Alpári Gnác Creative Commons License 2023.04.27 0 0 4215

Na végre!

 

Akkor ezt most hagyd futni pár óráig, akár napig, hogy tényleg nem esett-e áldozatul valamelyik hardver elem a kísérletezésnek.

 

(Nekem éppen egy hete ment egy nixie órám panelszinten készre szerelve, majd hirtelen elkezdett ghostingolni. Kiderült, hogy elcsesztem a NYÁK-tervet és kialakult valami kapacitás, ami már elég, hogy olyan számok is világítsanak, amiknek nem kéne. Új NYÁK-terv, most jön Kínából...)

 

Aztán meg ahogy alább írtam.

 

Már ha rám hallgatsz...:)

Előzmény: BerezPisti (4213)
Alpári Gnác Creative Commons License 2023.04.27 0 0 4214

Sajnos a Vin-en lévő tápfeszt emelheted a végtelenségig, mindenképpen csak és kizárólag 5V-ot tud kapni az Arduino-tól a LED.

Csak azt éred el, amit sikerült is, hogy kisütöd a lapkádat.

Ugyanis a Vin bemenet egy feszültségszabályzó IC-re csatlakozik, aminek a kimenete mindenképpen 5V lesz. Ez a feszültségszabályzó ráadásul lineáris, vagyis az Vin és az 5V közötti feszültségből és a kivett áramerősségből adódó teljesítményt elfűti, mert nem tud vele mást csinálni. Nem arra van kitalálva.

Nálad ez a teljesítmény 500-600 mW lehet, ami szemre nem tűnik soknak, de a lapkádon lévő IC-nél vagy 20-szor nagyobb 7805-öt is megizzasztja.

 

Továbbá a LED-et nem feszültséggel, hanem áramerősséggel vezéreljük. Ez teljesen alap elektronikai elv.

 

A LED-nek van egy nyitófeszültsége, mivel hogy egy dióda.

Ha ezt eléri a rákapcsolt feszültség, akkor kinyit és innentől nem emelkedik számottevően a rajta eső feszültség, csak egyre több áram folyik át rajta.

Aztán megfut és egy lavina effektus kíséretében elhalálozik.

 

A te LED-ednek 20 mA kellene a teljes fényerőhöz, azért javasoltunk 100 ohmot, hogy legalább 10 mA/pin-ben maradj benne, a közös katódokon így is 70 mA fog folyni, ami a specifikáció szerinti maximum közel háromszorosa! Nyilván nem lesz a fényerő teljes, de legalább egy darabig lehet vele tesztelgetni, mert nem öli meg instant az Arduino IC-t.
Ezt is leírtuk többször is...

 

A LED amúgy melegszik, nem is kicsit, csak mivel pici, ezt nem olyan könnyű észlelni. A kínai lámpák, a kommersz LCD TV-k éppen azért olyan rövid életűek, mert túlhajtják a LED-eket, több áramot kergetnek át rajtuk, mint szabadna, ettől persze valamivel nagyobb fényerőt produkálnak és még nem is hűtik őket megfelelően.

 

Most itt húzni kellene egy vonalat.

 

- Fogni egy biztosan működő Arduino boardot és egy olyan 7-szegmenses kijelzőt, ami tápegységről, 5V-ról egy 1k-s ellenállással az anódjain mutat valami életjelet.

- Feltölteni a használni kívánt könyvtár példaprogramjait, szépen sorban (már én unom magamat, annyiszor írtam le)

- Ha azt csinálja, amit várunk tőle, akkor sorban bevezetni a sallangokat. A szenzort, a reset gombot, meg ami még kell. Minden lépés után mindig újra és újra ellenőrizni, hogy a program továbbra is rendben van-e.

- Ha minden úgy működik, ahogy szeretnénk, akkor elővenni a használni kívánt kijelzőt és megnézni a specifikációját (ez lényegében megtörtént), kipróbálni asztalon, műszerrel, milyen paraméterekkel működik megfelelően.

- Ha azt látjuk, hogy ennek a kijelzőnek a megfelelő működéshez szignifikánsan több áramra van szüksége, mint amit az Arduino board produkálni képes, mert nagyon nem arról van szó, hogy a kijelző "bírja-e a 4V-ot" meg hogy "az kell neki, nem ellenállás", akkor keresni a meghajtáshoz szükséges megoldást.

Nagyon nem kell keresgélni, mert már többen, többször leírtuk, hogy mi kell hozzá: darlington mező az anódokhoz és PNP tranzisztor, vagy P-FET a katódokhoz.

- A kapcsoló áramköröket külön-külön megtervezni, deszkamodellben összerakni és kipróbálni akár a végső kijelzővel, szimulált kapcsolójelekkel.

- Végül az egészet összeintegrálni, kipróbálni, a közbeni elkötéseket, félretervezéseket kijavítani.

 

A neten található kapcsolások, programok jelentős része olyan, mint a netes ételreceptek, amiket egyszer valaki leírt, azóta százan átvették, lefordították, de egyikük sem főzte meg soha. Vannak olyanok, amik még elvi szinten sem tudnak működni, mégis kidobja a gugli, ez a műfaj ilyen.

Előzmény: BerezPisti (4211)
BerezPisti Creative Commons License 2023.04.27 0 0 4213

Feltöltöttem ezt az alap teszt kódot és minden rendben van:

#include "SevSeg.h"
SevSeg sevseg;

void setup(){
  byte numDigits = 3  ;
  byte digitPins[] = {9,10,13,};
  byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8};

  bool resistorsOnSegments = true;
  bool updateWithDelaysIn = true;
  byte hardwareConfig = COMMON_CATHODE;
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
  sevseg.setBrightness(90);
}

void loop(){
    sevseg.setNumber(111);
    sevseg.refreshDisplay();
}

Ezek szerint a hadvernek és a huzalozásnak nincs baja

az eredeti kód is jó volt még tegnap,meg ma reggel is

úgy látszik az arduino amilyen kedve van úgy viselkedik ,köze nincs az elektromossághoz

BerezPisti Creative Commons License 2023.04.27 0 0 4212

Direkt olyan 3 jegyű számokat irattam ki ami 1 vagy 4 -el kezdődik,az összes többi esetben úgyis kell az "A" szegmens.

Eredmények 354 ,jó.157 jó. 457 jó .megint 157 sz@r.(el  perce jó volt)354 persze megint jó.455 @sz&r.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!