-
Număr conținut
463 -
Înregistrat
-
Ultima Vizită
Profile Fields
-
Locatie
Campina
Vizitatori Recenți Profil
Blocul vizitatori recenți este dezactivat și nu este arătat altor utilizatori.
messu's Achievements
Proficient (10/14)
Recent Badges
-
Am probat. Cu pinul SS pus la masa (la modulul USB), nu functioneza.
-
O sa încerc și revin cu rezultatul
-
Haideti c-am lamurit treaba. Gandul de pe urma, ca de obicei... Placa Arduino Mega, n-are nicio problema. Am gresit "un pic" la pini. Alocarea pinului SS este diferita la cele doua placi fata de ce scrie in librarie. La NANO, pinul SS este este 10 si alocarea in librarie este tot 10. La MEGA pinul SS este 53 si eu am mers direct pe el, desi libraria aloca CLAR pinul 10. De aici greseala. In concluzie, pentru cine se mai loveste de problema, conectarea corecta este cea din imaginea pe care o atasez. Multumesc tuturor pentru ajutor si implicare !
-
Am facut proba cu #define INT_PIN 2 si, din pacate nu este nicio schimbare. Mai mult, am constatat ca pe Arduino NANO functioneaza inclusiv cu pinul INT in aer, neconectat. Nu stiu ce sa mai cred. Stiu ca am un Mega Pro MIni, pe undeva si ma gandesc sa incerc si cu el, poate are ceva placa asta.
-
Nu cred. Și cu NANO fac la fel și merge. Conectez Arduino la PC pe port uSB, că sa am și monitorizarea serială și din placa arduino trag 3v3 și 5v pentru usb shield
-
Am incercat cu cu RST la 7 și INT la 9, dar nu s-a schimbat nimic. Nici CLK pe pinul 20 nu vrea. Am gasit, intr-adevar, in librarie, un fisier de configurare. Se cheama usbcore.h si contine alocarea pinilor SS si INT, pentru fieare tip de placa Arduino suportata de catre USB shield. Problema este ca atat UNO cat si 2560 au aceiasi pini alocati (10 si 9) dar de functionat nu functioneaza decat pe UNO (NANO in cazul meu). Cred ca fac ceva rau, dar nu-mi dau seama ce, in momentul asta. Tre sa mai studiez... Codul care functioneza perfect pe NANO este cel de mai jos. Este un exemplu inclus in librarie la care eu n-am modificat absolut nimic. #include <hidboot.h> #include <usbhub.h> // Satisfy the IDE, which needs to see the include statment in the ino too. #ifdef dobogusinclude #include <spi4teensy3.h> #endif #include <SPI.h> class KbdRptParser : public KeyboardReportParser { void PrintKey(uint8_t mod, uint8_t key); protected: void OnControlKeysChanged(uint8_t before, uint8_t after); void OnKeyDown (uint8_t mod, uint8_t key); void OnKeyUp (uint8_t mod, uint8_t key); void OnKeyPressed(uint8_t key); }; void KbdRptParser::PrintKey(uint8_t m, uint8_t key) { MODIFIERKEYS mod; *((uint8_t*)&mod) = m; Serial.print((mod.bmLeftCtrl == 1) ? "C" : " "); Serial.print((mod.bmLeftShift == 1) ? "S" : " "); Serial.print((mod.bmLeftAlt == 1) ? "A" : " "); Serial.print((mod.bmLeftGUI == 1) ? "G" : " "); Serial.print(" >"); PrintHex<uint8_t>(key, 0x80); Serial.print("< "); Serial.print((mod.bmRightCtrl == 1) ? "C" : " "); Serial.print((mod.bmRightShift == 1) ? "S" : " "); Serial.print((mod.bmRightAlt == 1) ? "A" : " "); Serial.println((mod.bmRightGUI == 1) ? "G" : " "); }; void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key) { Serial.print("DN "); PrintKey(mod, key); uint8_t c = OemToAscii(mod, key); if (c) OnKeyPressed(c); } void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after) { MODIFIERKEYS beforeMod; *((uint8_t*)&beforeMod) = before; MODIFIERKEYS afterMod; *((uint8_t*)&afterMod) = after; if (beforeMod.bmLeftCtrl != afterMod.bmLeftCtrl) { Serial.println("LeftCtrl changed"); } if (beforeMod.bmLeftShift != afterMod.bmLeftShift) { Serial.println("LeftShift changed"); } if (beforeMod.bmLeftAlt != afterMod.bmLeftAlt) { Serial.println("LeftAlt changed"); } if (beforeMod.bmLeftGUI != afterMod.bmLeftGUI) { Serial.println("LeftGUI changed"); } if (beforeMod.bmRightCtrl != afterMod.bmRightCtrl) { Serial.println("RightCtrl changed"); } if (beforeMod.bmRightShift != afterMod.bmRightShift) { Serial.println("RightShift changed"); } if (beforeMod.bmRightAlt != afterMod.bmRightAlt) { Serial.println("RightAlt changed"); } if (beforeMod.bmRightGUI != afterMod.bmRightGUI) { Serial.println("RightGUI changed"); } } void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key) { Serial.print("UP "); PrintKey(mod, key); } void KbdRptParser::OnKeyPressed(uint8_t key) { Serial.print("ASCII: "); Serial.println((char)key); }; USB Usb; //USBHub Hub(&Usb); HIDBoot<USB_HID_PROTOCOL_KEYBOARD> HidKeyboard(&Usb); KbdRptParser Prs; void setup() { Serial.begin( 115200 ); #if !defined(__MIPSEL__) while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection #endif Serial.println("Start"); if (Usb.Init() == -1) Serial.println("OSC did not start."); delay( 200 ); HidKeyboard.SetReportParser(0, &Prs); } void loop() { Usb.Task(); }
-
Exact asta am făcut. De asta am și pus imaginea cu corespondenta pinilor. Nu merge , din păcate. Suspectez o alocare diferită a pinilor , de la un model de Arduino la altul, în librărie, dar trebuie sa mai investighez... Speram sa mai fi întâlnit cineva problema și să scap mai simplu
-
messu îl urmărește pe Migrare Arduino pe ATmega328P ? , USB Mini shield 2.0 cu Arduino Mega 2560 , Samsung 50AU8072 - linii orizontale ecran și 1 altul
-
Incerc sa conectez un shiled de tipul celui mentionat in titlu, la Arduino 2560 insa fara succes. Acelasi shield, conectat la un Arduino Nano, functioneza perfect. Conectarea la Arduino Nano respectiv Arduino 2560 am facut-o ca in imaginea alaturata. Ideea este ca n-am gasit nicaieri ceva clar despre conectarea pinilor INT si RST in cazul Arduino 2560. De-aia i-am marcat cu ?? La Nano i-am pus la D9 si RST si merge totul brici. Pentru test am folosit, din exemple, fara nico modificare, schita USBHiDBootKbd. Pe Arduino 2560 imi afiseaza pe monitorul serial: OSC din not start. A mai intalnit ciineva problema ? Unde gresesc ?
-
Samsung 50AU8072 - linii orizontale ecran
messu a răspuns la subiect lui messu în Depanari Radio-TV, Audio-video
Multmesc. Am sa ma gandesc... -
Samsung 50AU8072 - linii orizontale ecran
messu a răspuns la subiect lui messu în Depanari Radio-TV, Audio-video
Pai da, dar la 2000 de lei reparatia, mai pun 500 si iau un TV nou cu tot cu garantie. Numai ca, sincer, nici nu stiu ce sa mai cumpar, daca la 2200, cat am dat pe al, m-a tinut 2 ani si un pic. O mizerie. Asta nu se mai poate intitula produs cat de cat de incredere. Si daca spuneti ca e la fel la toti "marii" producatori....e clara treaba... -
Samsung 50AU8072 - linii orizontale ecran
messu a răspuns la subiect lui messu în Depanari Radio-TV, Audio-video
Hmmm...pai se putea sa scap cu 200 le lei !?!? Multumesc mult de raspuns ! Am luat Samsung, ca am zis ca, poate, e mai de calitate. Are 2 ani si vreo 3 luni. Ce sa mai comentez ??? -
Samsung 50AU8072 - linii orizontale ecran
messu a postat un subiect în Depanari Radio-TV, Audio-video
Am acest tip de TV si ,din pacate, de vreo doua zile a inceput sa afiseze niste linii, fine, orizontale, cum se vede in imagine. Liniile sunt mai accentuate in partea stanga a ecranului si se pierd spre dreapta. La extremitatea dreapta a ecranului, liniile devin inperceptibile. Sunt vero 2 linii in treimea superioara a ecranului, vreo 2 pe la mijloc si vreo 7-8 in treimea inferioara. Liniile isi schimba culoarea si intensitatea, in functie de imaginea afisata pe ercan, in momentul respectiv. Am incercat, bineinteles, solutiile comune si totodata cele mai la indemana, adica reset TV si curatarea conectorilor cablu panglica, fara niciun rezultat. Intrebarea ar fi, sa incerc sa cumpar o placa electronica second hand, sau este un defect de ecran si ...TV-ul este de dat la gunoi ? -
Da, este adevarat. Deocamdata abia am cumparat statia si inca bajbai prin ea. D-aia ma gandesc ca nu ar strica si un cablu
-
Are cineva o schema, verificata, pentru un astfel de cablu ? Pe internet n-am reusit sa gasesc nimic concludent. Sunt niste sugestii cu adaptor USB-TTL, dar nu special pentru aceasta satie, si parca n-as incerca asa, in orb. E drept ca statia este destul de veche, dar cred ca inca o mai folosec destul de multi si poate a construit (si testat) cineva si un astfel cablu. 73
-
A incercat cineva sa faca asa ceva ? Eu incerc sa realizez priectul de aici : https://www.hfsignals.com/index.php/antuino/ Inainte de a trece la relizarea cablajelor, am facut proba sa vad daca totul functioneaza. Si, desi pe Arduino (am folosit un Nano) totul este in regula, cand am trecut pe ATmega 328p, treaba NU PREA mai functioneaza, sau nu functioneaza in totalitate. In speta, interfata grafica este in regula, encoderul functioneaza, insa nu mai citeste nimic pe ADC. Cu proiectul rulat pe Nano, cu un potentiometru legat pe ADC, se vad clar variatiile la actionarea potentiometrului. Cand mut acelasi hex pe ATmega328, nu mai citeste nimic. Care ar putea fi cauza ? Stiu ca varianta TQFP32 are doua ADC-uri in plus fata de DIP28. Trebuiesc facute modificari in cod pentru asta, in afara de realocarea porturilor (pe care bineinteles ca am facut-o in concordanta cu schema atasata)? //to switch on/off various clocks #define SI_CLK0_CONTROL 16 // Register definitions #define SI_CLK1_CONTROL 17 #define SI_CLK2_CONTROL 18 #define IF_FREQ (24993000l) #define MODE_ANTENNA_ANALYZER 0 #define MODE_MEASUREMENT_RX 1 #define MODE_NETWORK_ANALYZER 2 unsigned long mode = MODE_ANTENNA_ANALYZER; char b[32], c[32], serial_in[32]; int return_loss; unsigned long frequency = 10000000l; int openHF = 96; int openVHF = 96; int openUHF = 68; #define DBM_READING (A3) //A6 initial int dbmOffset = -114; int menuOn = 0; unsigned long timeOut = 0; /* * The return loss in db to vswr look up. * The VSWR is stored as multiplied by 10, i.e. VSWR of 1.5 is stored as 15 */ const int PROGMEM vswr[] = { 999, // 0 db 174, // 1 db 87, // 2 db 58, // 3 db 40, // 4 db 35, // 5 db 30, // 6 db 26, // 7 db 20, // 8 db 19, // 9 db 18, // 10 db 17, // 11 db 16, // 12 db 15, // 13 db 14, // 14 db 14, // 15 db 14, // 16 db 13, // 17 db 13, // 18 db 12, // 19 db 12, // 20 db 12, // 21 db 12, // 22 db 11, // 23 db 11, // 24 db 11, // 25 db 11, // 26 db 10, // 27 db 10, // 28 db 10, // 29 db 10 // 30 db }; /* * The return loss in db to vswr look up. * The VSWR is stored as multiplied by 10, i.e. VSWR of 1.5 is stored as 15 */ const int PROGMEM vswr_lin[] = { 999, // 0 db 174, // 1 db 87, // 2 db 58, // 3 db 44, // 4 db 35, // 5 db 30, // 6 db 26, // 7 db 23, // 8 db 20, // 9 db 19, // 10 db 17, // 11 db 17, // 12 db 16, // 13 db 15, // 14 db 14, // 15 db 14, // 16 db 13, // 17 db 13, // 18 db 12, // 19 db 12, // 20 db 12, // 21 db 12, // 22 db 11, // 23 db 11, // 24 db 11, // 25 db 11, // 26 db 10, // 27 db 10, // 28 db 10, // 29 db 10 // 30 db }; const int PROGMEM db_distortion[] = { }; void active_delay(int delay_by){ unsigned long timeStart = millis(); while (millis() - timeStart <= delay_by) { //Background Work } } int tuningClicks = 0; int tuningSpeed = 0; void updateDisplay(){ sprintf(b, "%ldK, %ldK/div", frequency/1000, spanFreq/10000); GLCD.DrawString(b, 20, 57); } int calibrateClock(){ int knob = 0; int32_t prev_calibration; char *p; GLCD.ClearScreen(); GLCD.DrawString("1. Monitor RF Out", 0, 0); GLCD.DrawString(" port on 10 MHz freq.", 0, 10); GLCD.DrawString("2. Tune to zerbeat and", 0, 20); GLCD.DrawString("3. Click to Save", 0, 30); GLCD.DrawString("Save", 64, 45); GLCD.DrawRect(60,40,35,20); //keep clear of any previous button press while (btnDown()) active_delay(100); active_delay(100); prev_calibration = xtal_freq_calibrated; xtal_freq_calibrated = 27002000l; si5351aSetFrequency_clk0(10000000l); ltoa(xtal_freq_calibrated - 27000000l, c, 10); GLCD.FillRect(0,40,50,15, WHITE); GLCD.DrawString(c, 4, 45); while (!btnDown()) { knob = enc_read(); if (knob > 0) xtal_freq_calibrated += 10; else if (knob < 0) xtal_freq_calibrated -= 10; else continue; //don't update the frequency or the display si5351aSetFrequency_clk0(10000000l); ltoa(xtal_freq_calibrated - 27000000l, c, 10); GLCD.FillRect(0,40,50,15, WHITE); GLCD.DrawString(c, 4, 45); } while(btnDown()) delay(100); delay(100); GLCD.ClearScreen(); GLCD.DrawString("Calibration Saved", 0, 25); EEPROM.put(MASTER_CAL, xtal_freq_calibrated); delay(2000); } int readOpen(unsigned long f){ int i, r; takeReading(f); delay(100); r = 0; for (i = 0; i < 10; i++){ r += analogRead(DBM_READING)/5; delay(50); } //debug the open reading sprintf(c, "%04d", r); GLCD.DrawString(c, 0, 42); delay(1000); return (r+5)/10; } int calibrateMeter(){ GLCD.ClearScreen(); GLCD.DrawString("Disconnect Antenna", 0, 0); GLCD.DrawString("port and press Button", 0, 10); GLCD.DrawString("to calibrate SWR", 0, 20); GLCD.DrawString("OK", 10, 42); GLCD.DrawRect(5,35,20,20); //wait for a button down while(!btnDown()) active_delay(50); GLCD.ClearScreen(); GLCD.DrawString("Calibrating.....", 10, 25); delay(1000); int i, r; mode = MODE_ANTENNA_ANALYZER; delay(100); r = readOpen(20000000l); Serial.print("open reading of HF is ");Serial.println(r); EEPROM.put(OPEN_HF, r); r = readOpen(140000000l); Serial.print("open reading of VHF is ");Serial.println(r); EEPROM.put(OPEN_VHF, r); r = readOpen(440000000l); Serial.print("open reading of UHF is ");Serial.println(r); EEPROM.put(OPEN_UHF, r); menuOn = 0; GLCD.ClearScreen(); GLCD.DrawString("Done!",10,25); delay(1000); //switch off just the tracking source si5351aOutputOff(SI_CLK0_CONTROL); takeReading(centerFreq); updateDisplay(); } int openReading(unsigned long f){ if (f < 60000000l) return openHF; else if (f < 150000000l) return openVHF; else return openUHF; } long prev_freq = 0; //this is used only inside takeReading, it should have been static local int prevMode = 0; void takeReading(long newfreq){ long local_osc; if (newfreq < 20000l) newfreq = 20000l; if (newfreq < 150000000l) { if (newfreq < 50000000l) local_osc = newfreq + IF_FREQ; else local_osc = newfreq - IF_FREQ; } else { newfreq = newfreq / 3; local_osc = newfreq - IF_FREQ/3; } if (prev_freq != newfreq || prevMode != mode){ switch(mode){ case MODE_MEASUREMENT_RX: si5351aSetFrequency_clk2(local_osc); si5351aOutputOff(SI_CLK1_CONTROL); si5351aOutputOff(SI_CLK0_CONTROL); break; case MODE_NETWORK_ANALYZER: si5351aSetFrequency_clk2(local_osc); si5351aOutputOff(SI_CLK1_CONTROL); si5351aSetFrequency_clk0(newfreq); break; default: si5351aSetFrequency_clk2(local_osc); si5351aSetFrequency_clk1(newfreq); si5351aOutputOff(SI_CLK0_CONTROL); } prev_freq = newfreq; prevMode = mode; // Serial.print(mode);Serial.print(':'); // Serial.println(prev_freq); } } void setup() { GLCD.Init(); GLCD.SelectFont(System5x7); Serial.begin(9600); b[0]= 0; Wire.begin(); Serial.begin(9600); Serial.flush(); Serial.println(F(" RF Antuino v2.1")); analogReference(DEFAULT); unsigned long last_freq = 0; EEPROM.get(MASTER_CAL, xtal_freq_calibrated); EEPROM.get(LAST_FREQ, last_freq); EEPROM.get(OPEN_HF, openHF); EEPROM.get(OPEN_VHF, openVHF); EEPROM.get(OPEN_UHF, openUHF); EEPROM.get(LAST_SPAN, selectedSpan); EEPROM.get(LAST_MODE, mode); Serial.print("*hf_open:"); Serial.println(openHF); //the openHF reading is actually -19.5 dbm dbmOffset = -23 - openHF; Serial.println(last_freq); if (0 < last_freq && last_freq < 500000000l) centerFreq = last_freq; if (xtal_freq_calibrated < 26900000l || xtal_freq_calibrated > 27100000l) xtal_freq_calibrated = 27000000l; if (mode < 0 || mode > 2) mode = 0; spanFreq = spans[selectedSpan]; pinMode(ENC_A, INPUT_PULLUP); pinMode(ENC_B, INPUT_PULLUP); pinMode(FBUTTON, INPUT_PULLUP); if (btnDown()){ calibration_mode(); } else updateScreen(); si5351aOutputOff(SI_CLK0_CONTROL); takeReading(frequency); updateMeter(); } int prev = 0; void loop() { doMenu(); // doTuning2(); // checkButton(); int r = analogRead(DBM_READING); if (r != prev){ takeReading(centerFreq); updateMeter(); prev = r; Serial.println(r); } delay(50); }