fane Postat Iulie 17, 2017 Autor Partajează Postat Iulie 17, 2017 schema pe care am luato de pe net e altfel pe nano nu am D0 siD1 RD WR RS si CS afisajul e la fel am doua afisaje diferenta intre ele e doar ca unul nu are pe spate circuitul notat cu U1 in poza ta Link spre comentariu
nico_2010 Postat Iulie 17, 2017 Partajează Postat Iulie 17, 2017 Foloseste semnele de punctuatie! Link spre comentariu
fane Postat Iulie 17, 2017 Autor Partajează Postat Iulie 17, 2017 Scuze pentru viteza de scriere. Dar problema tot ramine in picioare Link spre comentariu
nico_2010 Postat Iulie 19, 2017 Partajează Postat Iulie 19, 2017 schema pe care am luato de pe net e altfel pe nano nu am D0 siD1 RD WR RS si CS afisajul e la fel am doua afisaje diferenta intre ele e doar ca unul nu are pe spate circuitul notat cu U1 in poza ta Pai nici nu o sa gasesti aceste adnotari in pinout-ul Arduino. Pinii cu pricina ii asignezi in sketch cum iti este tie mai convenabil Link spre comentariu
fane Postat Iulie 20, 2017 Autor Partajează Postat Iulie 20, 2017 (editat) nu stiu ce sa mai fac.Am luat de pe net mai multe sketch-uri si cred ca am probleme cu programul majoritatea nu mi le compileaza, imi da numai erori? Unele sint pntru arduino uno am setat placa ca fiind uno sinici asa nu merg? Editat Iulie 20, 2017 de fane Link spre comentariu
nico_2010 Postat Iulie 20, 2017 Partajează Postat Iulie 20, 2017 Copiaza asta: /* Main code by Richard Visokey AD7C - www.ad7c.com Revision 2.0 - November 6th, 2013 */ // Include the library code #include <LiquidCrystal.h> #include <rotary.h> #include <EEPROM.h> //Setup some items #define W_CLK 8 // Pin 8 - connect to AD9850 module word load clock pin (CLK) #define FQ_UD 9 // Pin 9 - connect to freq update pin (FQ) #define DATA 10 // Pin 10 - connect to serial data load pin (DATA) #define RESET 11 // Pin 11 - connect to reset pin (RST) #define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); } int_fast32_t rx = 7200000; // Starting frequency of VFO int_fast32_t rx2 = 1; // variable to hold the updated frequency int_fast32_t increment = 10; // starting VFO update increment in HZ. int buttonstate = 0; String hertz = "10 Hz"; int hertzPosition = 5; byte ones, tens, hundreds, thousands, tenthousands, hundredthousands, millions ; //Placeholders String freq; // string to hold the frequency int_fast32_t timepassed = millis(); // int to hold the arduino miilis since startup int memstatus = 1; // value to notify if memory is current or old. 0=old, 1=current. int ForceFreq = 1; // Change this to 0 after you upload and run a working sketch to activate the EEPROM memory. YOU MUST PUT THIS BACK TO 0 AND UPLOAD THE SKETCH AGAIN AFTER STARTING FREQUENCY IS SET! Rotary r = Rotary(2, 3); // sets the pins the rotary encoder uses. Must be interrupt pins. LiquidCrystal lcd(12, 13, 7, 6, 5, 4); // I used an odd pin combination because I need pin 2 and 3 for the interrupts. void setup() { pinMode(A0, INPUT); // Connect to a button that goes to GND on push digitalWrite(A0, HIGH); lcd.begin(16, 2); PCICR |= (1 << PCIE2); PCMSK2 |= (1 << PCINT18) | (1 << PCINT19); sei(); pinMode(FQ_UD, OUTPUT); pinMode(W_CLK, OUTPUT); pinMode(DATA, OUTPUT); pinMode(RESET, OUTPUT); pulseHigh(RESET); pulseHigh(W_CLK); pulseHigh(FQ_UD); // this pulse enables serial mode on the AD9850 - Datasheet page 12. lcd.setCursor(hertzPosition, 1); lcd.print(hertz); // Load the stored frequency if (ForceFreq == 0) { freq = String(EEPROM.read(0)) + String(EEPROM.read(1)) + String(EEPROM.read(2)) + String(EEPROM.read(3)) + String(EEPROM.read(4)) + String(EEPROM.read(5)) + String(EEPROM.read(6)); rx = freq.toInt(); } } void loop() { if (rx != rx2) { showFreq(); sendFrequency(rx); rx2 = rx; } buttonstate = digitalRead(A0); if (buttonstate == LOW) { setincrement(); }; // Write the frequency to memory if not stored and 2 seconds have passed since the last frequency change. if (memstatus == 0) { if (timepassed + 2000 < millis()) { storeMEM(); } } } ISR(PCINT2_vect) { unsigned char result = r.process(); if (result) { if (result == DIR_CW) { rx = rx + increment; } else { rx = rx - increment; }; if (rx >= 30000000) { rx = rx2; }; // UPPER VFO LIMIT if (rx <= 1000000) { rx = rx2; }; // LOWER VFO LIMIT } } // frequency calc from datasheet page 8 = <sys clock> * <frequency tuning word>/2^32 void sendFrequency(double frequency) { int32_t freq = frequency * 4294967295 / 125000000; // note 125 MHz clock on 9850. You can make 'slight' tuning variations here by adjusting the clock frequency. for (int b = 0; b < 4; b++, freq >>= 8) { tfr_byte(freq & 0xFF); } tfr_byte(0x000); // Final control byte, all 0 for 9850 chip pulseHigh(FQ_UD); // Done! Should see output } // transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line void tfr_byte(byte data) { for (int i = 0; i < 8; i++, data >>= 1) { digitalWrite(DATA, data & 0x01); pulseHigh(W_CLK); //after each bit sent, CLK is pulsed high } } void setincrement() { if (increment == 10) { increment = 50; hertz = "50 Hz"; hertzPosition = 5; } else if (increment == 50) { increment = 100; hertz = "100 Hz"; hertzPosition = 4; } else if (increment == 100) { increment = 500; hertz = "500 Hz"; hertzPosition = 4; } else if (increment == 500) { increment = 1000; hertz = "1 Khz"; hertzPosition = 6; } else if (increment == 1000) { increment = 2500; hertz = "2.5 Khz"; hertzPosition = 4; } else if (increment == 2500) { increment = 5000; hertz = "5 Khz"; hertzPosition = 6; } else if (increment == 5000) { increment = 10000; hertz = "10 Khz"; hertzPosition = 5; } else if (increment == 10000) { increment = 100000; hertz = "100 Khz"; hertzPosition = 4; } else if (increment == 100000) { increment = 1000000; hertz = "1 Mhz"; hertzPosition = 6; } else { increment = 10; hertz = "10 Hz"; hertzPosition = 5; }; lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(hertzPosition, 1); lcd.print(hertz); delay(250); // Adjust this delay to speed up/slow down the button menu scroll speed. }; void showFreq() { millions = int(rx / 1000000); hundredthousands = ((rx / 100000) % 10); tenthousands = ((rx / 10000) % 10); thousands = ((rx / 1000) % 10); hundreds = ((rx / 100) % 10); tens = ((rx / 10) % 10); ones = ((rx / 1) % 10); lcd.setCursor(0, 0); lcd.print(" "); if (millions > 9) { lcd.setCursor(1, 0); } else { lcd.setCursor(2, 0); } lcd.print(millions); lcd.print("."); lcd.print(hundredthousands); lcd.print(tenthousands); lcd.print(thousands); lcd.print("."); lcd.print(hundreds); lcd.print(tens); lcd.print(ones); lcd.print(" Mhz "); timepassed = millis(); memstatus = 0; // Trigger memory write }; void storeMEM() { //Write each frequency section to a EPROM slot. Yes, it's cheating but it works! EEPROM.write(0, millions); EEPROM.write(1, hundredthousands); EEPROM.write(2, tenthousands); EEPROM.write(3, thousands); EEPROM.write(4, hundreds); EEPROM.write(5, tens); EEPROM.write(6, ones); memstatus = 1; // Let program know memory has been written }; si compileaza-l. Dupa compilare nu am obtinut erori. Link spre comentariu
fane Postat Iulie 20, 2017 Autor Partajează Postat Iulie 20, 2017 (editat) Sigur am si alte probleme.Si la asta trimis de dvs. da eroareArduino: 1.8.3 (Windows 7), Board: "Arduino Nano, ATmega328" ceva de genul: C:\Users\FANE\Documents\Arduino\sketch_jul20a\sketch_jul20a.ino:9:20: fatal error: rotary.h: No such file or directory #include <rotary.h> ^ compilation terminated. exit status 1 Error compiling for board Arduino Nano. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. Editat Iulie 20, 2017 de fane Link spre comentariu
nico_2010 Postat Iulie 20, 2017 Partajează Postat Iulie 20, 2017 Nu ai instalat biblioteca "rotary". Link spre comentariu
fane Postat Iulie 20, 2017 Autor Partajează Postat Iulie 20, 2017 Am inteles multumesc. M-am uitat mai atent si asta e sketciul pentru generatorul de fregventa pe care il am facut deja si merge probleme am avut la el din caza encoderului care are doua rezistente smd pe placa si din cauza lor nu lucra,l/am scos si e ok. Dupa cum am spus acum incerc sa lucrez cu un tft display pe care nu reusesc nicicum sa il fac sa afiseze ceva am incercat o gramada de sketciuri de pe saiturile indicate de autori si nu reusesc. Link spre comentariu
MVS Postat Iulie 20, 2017 Partajează Postat Iulie 20, 2017 fane: reciteste-mi postarea #11. Link spre comentariu
nico_2010 Postat Iulie 21, 2017 Partajează Postat Iulie 21, 2017 @fane: ce model de afisor TFT folosesti si care este circuitul driver pentru el? O fotografie face cat o mie de cuvinte! Link spre comentariu
fane Postat Iulie 22, 2017 Autor Partajează Postat Iulie 22, 2017 (editat) atasez poze cu cele doua displaiuri pe care le am, nu stiu ce circuit driver folosesc?? si cel de a doilea Editat Iulie 22, 2017 de fane Link spre comentariu
MVS Postat Iulie 22, 2017 Partajează Postat Iulie 22, 2017 (editat) pentru al doilea asta este driverul: https://github.com/prenticedavid/MCUFRIEND_kbv pentru primul nu sunt sigur. mai caut si revin cu info. Editare ulterioara: pentru primul: https://github.com/yamsam/TFTLCD_ST7781 Editat Iulie 22, 2017 de valentin marcarian Link spre comentariu
nico_2010 Postat Iulie 23, 2017 Partajează Postat Iulie 23, 2017 Driverul este SPFD 5408. Link spre comentariu
fane Postat Iulie 24, 2017 Autor Partajează Postat Iulie 24, 2017 (editat) Va multumesc pentru ajutor si intelegere, dar cred ca problema sint eu nu schetciurile sau placile. Nu stapinesc lucrul cu programul si librarii multiple.Cred ca trebuie sa ma apuc de studiu si sa depasesc stadiul de inccepator 0.E mai amplu sistemul de lucru si trebuie tratat cu mai multa atentie. Editat Iulie 24, 2017 de fane Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum