Keresés

Részletes keresés

ruzsa janos Creative Commons License 2017.11.27 0 0 3259

de éppen ez az: így nem kell keresztben programozni. valamiért a nyák gyártója így tette fel a LED foglalatát. Az 2x5 darab (adat és táp) csatlakozó teljesen értelmesen a szemközti oldalon van, vagyis ha egyetlen hosszú nyákot gyártanak, akkor mielőtt darabolod, az első kimenete össze van kötve a következő bemenetével. 

Előzmény: Prof (3258)
Prof Creative Commons License 2017.11.27 0 0 3258

Azt leszámítva, hogy "keresztben" kell programozni, érdekes elgondolás.

Előzmény: ruzsa janos (3257)
ruzsa janos Creative Commons License 2017.11.26 0 0 3257

na jó, ha már senki sem segített, megoldottam gépészmérnök-módra a mátrix-transzponálást. szétvágtam a négy modult, elforgattam őket 90 fokkal, összeragasztottam a 8x8-as panelokat - most már egy küldött byte egy kép-oszlopot jelent. Hardveres gyorsítás :)

(nyilván lehet kapni külön modulokat is, csak persze a 4-es olcsóbb volt, meg olyan jól hangzott, hogy akkor nem kell kábelezni a modulok között....)

Előzmény: ruzsa janos (3256)
ruzsa janos Creative Commons License 2017.11.23 0 0 3256

Urak, vettem most egy 4x64 ledes kijelzőt, mint ez: https://www.ebay.com/itm/MAX7219-Dot-led-matrix-MCU-control-LED-Display-module-for-Arduino-Raspberry-Pi-M/182289740901?hash=item2a7150b465:m:mrfecojN1D7VXJWfNu7GAZw

 

soros buszon működik, mivel még mindig nem számntam rá magam az Arduinos programozásra, kényteln voltam megérteni, megírni a protokollt, mindegy működik.

csakhogy ezen az eszközön az egy sorban lévő bytok kapják egymás után az adatot, tehát van ugye 8 darab 64 bites kolbászom. A karaktereket értelemszerűen függőleges 8 bitenként kellene beírnom, azon meg úgy következnek egymás után.

Kitaláltam, hogy lefoglalok az arduinoban egy videomemóriát, végülis mindössze 4x32 byte, ebbe írogatok bele bármit, majd amikor változás van, egyszerre frissítem az egész kijelzőt, mert azt kb 1,5 msec alatt meg tudom tenni, egyetlen paranccsal. Ez működik is

Itt akadtam el, mert viszont nekem a "videomemóriát" bit-szinten kellene címeznem, mintha egy 8x32 elemű mátrixba írnék, vagy a másik megoldás, hogy beírom az adatokat egy 8x8-as mátrixba függőlegesen, majd azt transzpnálom vízszintesre.

Erre a két utóbbira tudtok valami egyszerű, elegáns módszert? magas szintű műveletekkel meg tudom írni - de akkor egy rakás idő. Vagy vegyek egy máély levegőt, írjam meg assemblyben? (még a Z80-as korában képes voltam ilyenekre)

 

 

oregsas Creative Commons License 2017.11.22 0 0 3255

Köszönöm ! MEGY!!  Itt a bizonyíték !

 

Initializing SD card...initialization done.
Writing to datalog.csv...done.
datalog.csv:
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.

Rátettem a másik kártyaolvasót és a 3. változattal ment .

Innen már csak játszom vele.

Előzmény: Törölt nick (3253)
oregsas Creative Commons License 2017.11.22 0 0 3254

Próbáltam : nem jött be . Most is a lényeg , hogy nem nyitotta meg a fájlt.

"    Initializing SD card...initialization failed! "  ez volt az üzenet.

Próbáltam más képen is :

   -  1. változatlan programmal  és CS   = Arduino D4

   -  2. if(!SD.begin(53))  {   helyett  if(!SD.begin(4))    {     és CS   = Arduino D4

   -  3. if(!SD.begin(53))  {   helyett  if(!SD.begin(10))  {     és CS   = Arduino D10

egyik sem jött be.

 Minden más maradt .

Még megpróbálom a másik kártyaolvasóval is.

Előzmény: Törölt nick (3253)
Törölt nick Creative Commons License 2017.11.22 0 0 3253

/*
SD card read/write

This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


Serial.print("Initializing SD card...");

if (!SD.begin(53)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("datalog.csv", FILE_WRITE);

// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to datalog.csv...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}

// re-open the file for reading:
myFile = SD.open("datalog.csv");
if (myFile) {
Serial.println("datalog.csv:");

// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}
}

void loop() {
// nothing happens after setup
}

 

Előzmény: oregsas (3251)
enginer Creative Commons License 2017.11.22 0 0 3252

Ennek a kapcsolónak, ugyan úgy,mint a hagyományosnak nem kell nulla meg trafó!!!!!

Ott van az oldalán, hogy simán bekötöd a kapcsoló helyére a fogyasztóval sorba.

1-2W Wattos jellemzően huzallábas LEDeket tartalmazó lámpáknál egy ellenállást kell párhuzamosan kötni az égővel, különben lekapcsolt állapotban is "világitani fog!!! Arduinót meg ne akard betuszkolni a kapcsoló alá, mert nem kell!!

ez nem az amit írsz!!!

Ez nem webszerveres WiFi-s kapcsoló szerintem.

Az a Sonoffhttps://www.aliexpress.com/item/2017-New-1CH-Sonoff-Wifi-Switch-Relay-Module-AC-90V-250V-220V-Wireless-Light-Timer-Switch/32802070237.html?spm=a2g0s.9042311.0.0.h3n9Pt de az nem fér be a kapcsoló helyére és annak tényleg kell 0-is, meg egy router amire csatlakozik

és azt valóban tudod a világ másik végéről is kapcsolgatni interneten keresztül. 1500-2000Ft. Benne van a  ESP8266.

Saját titkositott szerverük van. más nem tudja kapcsolgatni a lámpádat. A programozott kapcsolásokat valahol a NETen tárolják és onnan küldik a jelet hiába van kikapcsolva vagy lemerülve a telefonod. ;)

Ja! és arra is figyelj, hogy egyből ne rendelj belőle sokat Én a mozgásérzékelős kapcsólókkal jártam úgy,hogy nem férnek be az itteni dobozokba. Lehet, hogy kinában félcentivel nagyobb dobozokat használnak? Ha jól látom ez is ~8cm átlóban.

Előzmény: Törölt nick (3111)
oregsas Creative Commons License 2017.11.22 0 0 3251

Annyi lemaradt .  Tápfesznek az 5 voltot használom, ugye mindegyiken van 3,3V stabilizátor.

Nem sérül a kártya sem és oda vissza kompatibilis. Ez inkább kérdés volt !

Előzmény: oregsas (3250)
oregsas Creative Commons License 2017.11.22 0 0 3250

Fiúk ! Megkaptam a TavIR írásos anyagát , ami sokat segített . így már egészen jó hőmérséklet regisztrálót készítettem, csak nem tudom elmenteni az adatokat . A soros plotteren 500 pontot tudok egyszerre látni, a többi pedig elvész . Kicsúszik a képernyőből és folyton mennie kell a laptopnak.

Mindenkinek köszönöm aki segített a mérések átlagolásában . Most már jól megy , de legtöbbet az árnyékolt vezeték és a 100nF kerámia kondik segítettek.

ARDUINO 1.0.1 programon fordítom , ez állítólag stabilabb, de nincs soros plotter.

ARDUINO 1.8.5 ha plotterezek erre töltöm fel és már van plotterem .

A kártya olvasót csak 1.0.1.- en próbáltam.

 

Ezek a cuccaim vannak :

 

Most már két hete tökölődöm vele, de még a kártyát sem tudtam megnyitni .

A képeket azért tettem fel , hogy semmi ne kerülje el a figyelmünket.

        A  PROGRAM : sok kommentárt kiszedtem belőle

,-,---,-,-,-,-,-,-,-,-

/*  EZT A PROGRAMOT INNEN KOPPINTOTTAM : MINDENKINEK OTT VAN A SAJÁT GÉPÉN :
  ... ARDUINOlibrariesSDexamplesDataloggerDatalogger.ino
  MINDENKINEK OTT VAN A SAJÁT GÉPÉN !!
 
 The circuit:
 * analog sensors on analog ins 0, 1, and 2
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4
  */

#include <SD.h>
const int chipSelect = 10;  // EZT ÉN ÁLLÍTOTTAM " 10.-re " ELŐTTE 4.-es VOLT !!

void setup()
{
  Serial.begin(9600);
   while (!Serial) {
    ;
  }
 Serial.print("Initializing SD card...");
    pinMode(10, OUTPUT);                  // ITT MÁR " 10.-es " VOLT, NEM BABRÁLTAM  !!
    if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
       return;
  }
  Serial.println("card initialized.");
}

void loop()
{
    String dataString = "";

 
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    dataString += String(sensor);
    if (analogPin < 2) {
      dataString += ",";
    }
  }

 
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

 
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
   
    Serial.println(dataString);
  }  
 
  else {
    Serial.println("error opening datalog.txt");
  }
}
-,-,-,-,-,-,-,-,-,-,-,----,-,-

Ebben erősítsetek meg :

    -  SS   és a  CS    az teljesen ugyanaz , csak másképpen jelölik a kártyaolvasón

    - SCK az egyenlő órajellel

    - a program elején "  const int chipSelect = 10  "  4.-es volt amitén 10.-re változtattam . A MEGA.-n

ez D53 lábnak felel meg , UNO.-n pedig D10.-nek.

    - Valahol azt olvastam , hogy csak  2GB.-ig kezeli a kártyát , de ennek a YouTube.-n ellentmondtak , mert úgy vettek fel 32GB.-re mint a szél.

    - a kártyákat FAT12 vagy F16-ra kell formázni : nekem a win7 csak a FAT és FAT32-öt kínálta, így a FAT.-ot

használtam. Gondolom ez lehet a FAT16

    - Van 20MHz.-s kétsugaras szkópom, de nem gondolom , hogy ez rajtam segítene . Valószínű csak az órajelet látnám. De ha van ötlet ezt is megpróbálhatom.

Egyelőre meg sem nyitja a kártyát .    

Ez csak egy prospektus, ennyi van a képernyőn , persze ez fut egész héten :

 

opning datalog.txt
error opening dXW±½¹Initializing SD card...Card failed, or not present
error opening datalog.txt
error opening datalog.txt
error opening datalog.txt

Nem tudok angolul , de ez annyi , hogy hiba a text fájl megnyitásakkor.

Próbáltam mindkét új kártyaolvasóval.

Van egy formázott kártyám 2GB és egy új 4GB, mindkettőt próbálta a laptopban hibátlanok.

Gondolom 2 rossz kártyaolvasó nem lehet egy háztartásban.

Arra van recept, hogy hova kell másolnom a fájlt , vagy lehet bárhol a winchesteren ?

Ezt azért kérdezem , mert Turbopascalban a grafikus fájloknak ott kellett lenniük ahol a BGI fájl.

Amennyiben ez fontos , akkor légy szi , ezt egyszerűen és kimerítően írjátok nekem .

Valamint mindenféle zsákutcát ami szóba jöhet közöljétek,  már kiraktam az elakadásjelző háromszöget.

A CS.-t dugtam D4 és D10.-re , a kártya biztosan jól van benne , nem írásvédett.

 

Brandyman Creative Commons License 2017.11.20 0 0 3249

Hello, 

 

Legrosszabb esetben módosítok egy olyan karaktert, amit nem használok, és akkor lesz! 

Köszi a tippet! 

 

B. 

Előzmény: Prof (3248)
Prof Creative Commons License 2017.11.20 0 0 3248

Szia,
Az Adafruit_GFX könyvtárban van egy font (legalább egy, nem néztem alaposan), ami a teljes ASCII kódtáblát tartalmazza. A megoldás az lesz valószínűleg, hogy a fok jelet hexa formában teszed be: 0&F8
Egyébként itt egy elég jól összeszedett összefoglaló a lehetőségekről: 

https://forum.arduino.cc/index.php?topic=170670.0

Előzmény: Brandyman (3247)
Brandyman Creative Commons License 2017.11.20 0 0 3247

Nem LCD, érintőképernyős TFT.

 

 

A használt library-k; 

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
#include <TouchScreen.h>

Előzmény: Prof (3245)
Törölt nick Creative Commons License 2017.11.18 0 0 3246

Nem nagyon találkoztam még olyan LCD kijelzőt, amiben nem lehetett karaktert definiálni, ha nincs benne amit szeretnénk.

Előzmény: Brandyman (3244)
Prof Creative Commons License 2017.11.18 0 0 3245

Melyik LCD? Milyen könyvtárral?

Előzmény: Brandyman (3244)
Brandyman Creative Commons License 2017.11.17 0 0 3244

Sajna a kijelző már megvan...

LCD-re csináltam már ilyen karaktert, de itt nem tudom merre induljak. 

Előzmény: Prof (3243)
Prof Creative Commons License 2017.11.17 0 0 3243

Keress olyan kijelzőt, aminek a beépített karakterkészletében van fok jel. Vagy ha nincs, csinálj egy karakterkészletet (vagy csak egy karaktert), ami akként működik, és hívd azt.

Előzmény: Brandyman (3242)
Brandyman Creative Commons License 2017.11.17 0 0 3242

Urak, 

 

Tudja valaki hogyan lehet TFT kijelzőn pofásan °C-t kijelezni? 

 

A "°" karaktert ha ráküldöm, krix-krax jelenik csak meg...

 

Nagyköszi! 

 

B. 

 

halaloszto Creative Commons License 2017.11.13 0 0 3241

androidos arduino studiot próbáltad? én nem, de csodálkozva látom, hogy létezik.

Előzmény: ruzsa janos (3240)
ruzsa janos Creative Commons License 2017.11.13 0 0 3240

ez a furcsa a többinél. tegnap kipróbáltam úgy 15 különféle soros teminálprogramot és soros kontrollert (mint amilyen ez is). 

előbb feltettem a CH341 driverét. Namármost a 15-ből 4 tökéletesen működött, az eszköz cstlakoztatásakor a rendszer rákérdez, mivel akarom összepakcsolni (melyik programmal). Ezek a programok egyébként az elindításukkor is rákérdeznek, melyik portot olvasnám, és elfogadják ezt a ch341-es virtuális com-ot. A maradék 11 viszont nem.

Egyébként az Androidnál van valami beépített alkalmazás, amivel meg tudom nézni az aktív perifériákat, mint a windowsban? van egyáltalán ilyen COM1  stb kiosztás?  

Amit belinkeltél, az viszont, ha működik, pont azt tudja, amit szeretnék. Csak most estig kell várnom.

Előzmény: halaloszto (3239)
halaloszto Creative Commons License 2017.11.13 0 0 3239

Én wifin használtam. De tud sorost is. Ha az android felismeri a soros eszközt, akkor kell menjen, nem?

Előzmény: ruzsa janos (3238)
ruzsa janos Creative Commons License 2017.11.13 0 0 3238

ok, de mukodott a x. ch341-el?

Előzmény: halaloszto (3237)
halaloszto Creative Commons License 2017.11.13 0 0 3237

Csak jatszottam vele: roboremo

.

Előzmény: ruzsa janos (3236)
ruzsa janos Creative Commons License 2017.11.13 0 0 3236

van valakinek valami KIPRÓBÁLT megoldása, amivel egy Arduinot (klónozott kínai szart, CH340-es USB interfésszel) egy Androidos tabletről lehetne USB-n keresztül vezérelni? Valami nagyon egyszerű felület kellene, néhány megjelenített számérték, néhány kapcsoló, beviteli mező. Kérlek, ne a LabViewt ajánljátok (már ha van Androidra), hanem valami egyszeűbbet . Nem baj, ha pénzbe kerül, csak ne legyen megfizethetetlen. Odáig már eljutottam, hogy az androidra fel tudtam tenni a drivert, találtam a CH341-gyel együttműködő soros port terminált. csak éppen a programok nem akarják látni az usb-n lévő áramkört.  

Törölt nick Creative Commons License 2017.11.09 0 0 3235

A codebender meg fizetős lett.

A közvetlen kódfeltöltés arról mintha ment volna.

Előzmény: Törölt nick (3234)
Törölt nick Creative Commons License 2017.11.09 0 0 3234
Prof Creative Commons License 2017.11.08 0 0 3233

Szia,

Azért még vannak itt következetlenségek.

 

A szám, szam_gongyolve, atlag és forgo változóknak simán lehet (és javasolt is!) értéket adni már a deklarációkor.

 

int szam = 0;

 

A float kérdéskörre inkább javaslom: 

 

float atlag = 0.00;

 

 

A rengeteg szóközt hagyd ki, átláthatatlan lesz tőle a kód. Arduino IDE-ben CTRL+T, és rend lesz!

 

Eltelt időt a millis() függvénnyel mérünk, nem ilyen módszerrel, mert elképesztően pontatlan lesz.

Előzmény: oregsas (3231)
tibi-d Creative Commons License 2017.11.08 0 0 3232

Úgy látom, hogy most 300ms közönként átlagolsz 10 egymást követő ciklust. Nem lenne jobb 300ms-ként 1 értéket venni, és 3s átlagát venni?

Előzmény: oregsas (3231)
oregsas Creative Commons License 2017.11.07 0 0 3231

A lényeg működik !

megvan amire szükségem volt :

- első tíz szám összege       =    55

 - átlag     55 / 10                 =     5    " mivel int , nem ír maradékot "

 - forgó    növekszik 

Float-al nem volt hajlandó lefordítani  , valahogy nem engedte a fordító  a típusváltást.

Mivel elég nagy számok lesznek, nem érdekes a maradék.

A  " forgo " változóra azért van szükségem  , mert forgo *  kiírással   = eltelt idő .          

 És itt a program :

 

int forgo                  ;    
int szam                   ;  
int szam_gongyolve         ;   
int atlag                  ;      

void setup   ()  {
  Serial.begin (9600 )     ;
   szam        =  0        ;   
   forgo       =  0        ;
   szam_gongyolve = 0      ;
}
void   magresz  ()  {
  for(int ciklus = 1 ; ciklus < 11 ;  ciklus++  )    {
    szam         =     szam  + 1 ;
    szam_gongyolve = szam_gongyolve + szam   ;
     
 Serial.print           ("   szam    ")      ;
 Serial.print           (szam)                ;
 Serial.print           ("       szam gongyolve  ")  ;
 Serial.println           (szam_gongyolve     )  ;
 delay (300);
 //Serial.println (" ") ;
 //Serial.println (" ") ;     
 atlag   = szam_gongyolve  /szam  ; }     }
 
 void  nullazo   ()   {
 Serial.println (" ") ;
 Serial.print           ("   atl     ")      ;
 Serial.println           (atlag)               ;
 Serial.println  ()    ;
 
   szam_gongyolve     =   0  ;
   szam               =   0  ;
  }
                  
 void loop () {
  nullazo            ()   ;
  magresz            ()   ;
  forgo = forgo + 1 ;
  Serial.println  ()    ;
  Serial.print          ("                   forgo           ") ;
  Serial.print           (forgo )             ;
 
  delay ( 2000 ) ;
}

 

 

 

 

        

Előzmény: Prof (3227)
oregsas Creative Commons License 2017.11.07 0 0 3230

Prof !

Köszönöm , hogy ilyen kimerítően válaszoltál . Ha nem is válaszoltam , azért edzek rá .

Most még sokat puskázok és kis számokkal próbálgatok ciklusokat irkálni , hogy véremmé  váljon .

A túlcsordulás nálam is megtörtént  a göngyöltnél negatívvá vált  , majd logikusan a következő túlcsordulásnál újból pozitívvá vált . Lassan haladok , mindig vissza kell olvasnom a Tavir elejére.

Üdv apaape

Előzmény: Prof (3227)

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