Show Posts
Pages: [1] 2 3 ... 188
1  Products / Arduino Due / Re: Arduino Due TWI/I2C channel 1 on: April 17, 2014, 11:31:47 am
The outputs of the Due is about 4 mA, the Arduino about 20 mA... for best performance the IIC Pull ups should be 2k2 ohms for a 1.5 mA bus current. 10k will allow 330uA which makes length and thus loading capacitance more of an issue than the 2k2 value would.

Doc
2  Using Arduino / General Electronics / Re: Basic question: Arduino wires on: April 17, 2014, 11:00:45 am
Aluminum has about 1.5 x the unit identical resistance of copper. Or two same dia/length wires one copper and one aluminium will wire will have different values of resistance where the aluminium wire will be approx 50% higher than the copper wire..

Doc
3  Using Arduino / Programming Questions / Re: TinyGPS++ - Failed checksum on: April 16, 2014, 01:21:21 pm
Serial printing I s a blog o cling function and is a big chunk of time that must.be shared with the GPS sentence parsing. My answer was to print the support text and only update the changed data. I had a baro sensor an RH/temp sensor and tested two GPS Devices both with the same issues until I split. The main data form or screen into drawing the static data. (the labels)  and when required data changed I updated that data as required  at the required time for each device.
Time on the second, and the RH data once every 3 seconds. The BMP 085 was updated every 5 seconds.
This worked well with all but the Adafruit 1.8 display which requires 'clearing' or printing a blank field or box l printing the new data in the cleared data field or box.

Doc
4  Using Arduino / Programming Questions / Re: GPS with Arduino UNO - 2. on: April 16, 2014, 05:07:25 am
Sooner or later you'll learn the "language" and the procedures...
I stand by my original comments because IMO Strictly I read youasking for the simple experience that I was EALILY ABLE TO READ FFROM A HALF A DOZEN GOOGLE SEARCHES AND A LOT OF SEARCHING IN THIS AND OTHER FORUMS... YOU STATED NOTHING EXCEPT A REQUEST FOR INFORMATION ON HOW TO DO IT. tHE MANUAL IS CLEAR...  READ IT...
AND IT WAS THIS QUESTION THAT i RESPONDED TO
Quote
So, what should I do to make sure that my GPS is in the NMEA mode ?!!.
RTFM, PAGE 9 REFERS TO THE COMMANDS THAT MUST BE SENT TO THE TO THE GPS DEVICE VIA SERIAL TX TO PLACE IT IN THE NMEA0183, BINARY OR USER 1 PROTOCOL...
YOU MIGHT HAVE QUOTTED THE RELEVANT TEXT AND ASKED HOW TO DO IT... HOWEVER IT WASN'T THERE AND THE 5 SECONDS I "WASTED" ON YOUR INABILITY TO ASK ABOUT WHAT YOU DON'T UNDERSTAND WEAS SIMPLY WASTED TIME.
I HAVE 4 0R 5 DEVICES THAT ALL WORK AS ADVERTISED... SIMPLY BECAUSE I HAVE THE COMMON SENSE TO ASK ABOUT THE "SPECIFICS' OF WHAT I FAIL TO "GET' THE FIRST TIME AFTER HAVING DONE ALL I CAN TO GET ANY INFORMATION I CAN.
I responded as I did because I saw NO evidence in all your posts about anything you had made any attempt to read or understand this rather simple set of instructions...
Quote
■ NMEA Input Command
A.) Set Serial Port ID:100 Set PORTA parameters and protocol
This command message is used to set the protocol (SiRF Binary, NMEA, or USER1) and/or the
communication parameters (baud, data bits, stop bits, parity). Generally, this command is utilize to
switch the GPS module back to SiRF Binary protocol mode, where an extensive message commands
are readily available. In example, whenever users are interested in altering navigation parameters, a
valid message sent and is receive by the recipient module, the new parameters will be stored in
battery backed SRAM and then the receiver will restart using the saved parameters.
Format:
$PSRF100,<protocol>,<baud>,<DataBits>,<StopBits>,<Parity>*CKSUM
<CR><LF>
<protocol> 0=SiRF Binary, 1=NMEA, 4=USER1
<baud> 1200, 2400, 4800, 9600, 19200, 38400
<DataBits> 8,7. Note that SiRF protocol is only valid f8 Data bits
<StopBits> 0,1
<Parity> 0=None, 1=Odd, 2=Even
Example 1: Switch to SiRF Binary protocol at 9600,8,N,1
$PSRF100,0,9600,8,1,0*0C<CR><LF>
Example 2: Switch to User1 protocol at 38400,8,N,1
$PSRF100,4,38400,8,1,0*38<CR><LF>

perhaps the checksum might have been an issue but easily solved by attaching the manual and asking how to do the checksum...
So I fail entirely to see your issue... I do however see a great deal left out about about what you had tried prior to posting the  first easily answerable question. One I found as an easy to so procedure and one I have done many times with both of my Skylabs SKM53 modules... ones I've not yet done with my U-Blox Neo 6 or Max 7 modules or my first EM406 module...
It's been a year or more but for the SKM 53 it was a little different as I only wanted the RMC and GGA sentences...
Code:
// uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
This is covered well in both the Adafruit example and the SKM53 manual which is what I meant about doing your own research prior to asking others to solve your issues...

Docedison
I edited my response andremoved the request to notify me of anything changed in this thread. Further I will not reply to emails or pm's
5  Using Arduino / Programming Questions / Re: GPS with Arduino UNO - 2. on: April 15, 2014, 07:19:26 pm
You Might try to google for the attached data sheet.  I did so because you apparently are somewhat handicapped in your abilities to "Google" for part and modules data sheet.. So I took 5 seconds and...
The answers to set the module for NMEA 0183 or binary  are present on page 9 and can be found by reading pages... Lots faster than either asking someone else to do it for you or offer an opinion and wait for an accurate answer..

Doc
6  Using Arduino / Programming Questions / Re: Weird Error on: April 15, 2014, 03:28:39 pm
 @ Awol.. Thank You...
@ op This compiles..
Quote
 int  segA = 8;
  int  segB = 7;
  int  segC = 6;
  int  segD = 9;
  int  segE = 2;
  int  segF = 4;
  int  segG = 3;
  int  DP = 5;

void setup()
{// put your setup code here, to run once
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
}
void loop()
{
  displayDigit(0);
  displayDigit(2);
  displayDigit(4);
  displayDigit(6);
  displayDigit(8);
}
void displayDigit (int i)
{

 
  {
    digitalWrite(segA, (HIGH));
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, HIGH);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, LOW);
  }
  if (i==1)
  {
    digitalWrite(segA, LOW);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, LOW);
    digitalWrite(segE, LOW);
    digitalWrite(segF, LOW);
    digitalWrite(segG, LOW);
  }
  if (i==2)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, LOW);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, HIGH);
    digitalWrite(segF, LOW);
    digitalWrite(segG, HIGH);
  }
  if (i==3)
  {

    digitalWrite(segA, HIGH);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, LOW);
    digitalWrite(segF, LOW);
    digitalWrite(segG, HIGH);
  }
  if (i==4)
  {
    digitalWrite(segA, LOW);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, LOW);
    digitalWrite(segE, LOW);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, HIGH);
  }
  if (i==5)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, LOW);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, LOW);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, HIGH);
  }
  if (i==6)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, LOW);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, HIGH);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, HIGH);
  }
  if (i==7)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, LOW);
    digitalWrite(segE, LOW);
    digitalWrite(segF, LOW);
    digitalWrite(segG, LOW);
  }
  if (i==8)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, HIGH);
    digitalWrite(segE, HIGH);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, HIGH);
  }
  if (i==9)
  {
    digitalWrite(segA, HIGH);
    digitalWrite(segB, HIGH);
    digitalWrite(segC, HIGH);
    digitalWrite(segD, LOW);
    digitalWrite(segE, LOW);
    digitalWrite(segF, HIGH);
    digitalWrite(segG, HIGH);
  }
}

Doc
7  Using Arduino / Programming Questions / Re: Weird Error on: April 15, 2014, 02:30:09 pm
Code:
If (i == 2)
{
Do something;
}
What increments i ?

Doc
8  Using Arduino / Programming Questions / Re: how to calculate clock cycle of an instruction on: April 15, 2014, 11:27:07 am
 I often wonder why the Blink without Delay Sketch isn't the Standard Arduino "Hello World" example?... Might serve well, properly commented and perhaps a slight thoughtful error deliberately introduced and alluded to in the sketch documentation...  so that it might produce a more interesting effect when 'corrected' and perhaps to encourage  the new user to read the sketch first... IMO many of the users don't often even really try to suss out why the basic one works as it does... my point is that it teaches methods that are more likely to "Shoot the User in the Foot" than it does to teach the new user to "think" before before writing anything really useful... in particular there are two simple practices that I have always found to produce a sketch that is planned and thus has a slight chance of producing a better working first attempt.
This in particular from both the engineering aspect and the language issues that confront the new user...
In particular to answer the question that this new user is really asking.

Doc
9  Using Arduino / Microcontrollers / Re: ATtiny84 with internal pull-ups on: April 14, 2014, 09:46:02 pm
What is the ground connected to... and is it the same place as the Arduino ground really is?
and is it possible that there is a power supply issue...Measure the Vcc in the failed condition IE PA1 and PA2...

Doc
 
10  Using Arduino / LEDs and Multiplexing / Re: Binary Clock - ATTiny85 + 74HC595 + ULN2003 on: April 14, 2014, 08:03:24 pm
It is very difficult to guess at your problem... If you had 1.read the sticky note at the top of this forum section you would understand what is the minimum information required for an answer that applies to your code and your wiring...

Doc
11  Using Arduino / General Electronics / Re: Level shifting advice on: April 13, 2014, 12:56:32 pm
Yes it is... But it works well with 10 - 20 CM bus length's and although sometimes hard to route especially with the early Protel autorouters...I knew that there would be less "Midnight Oil" sessions on the larger and faster boards used as the systems controllers.
The gain being less current required for the bus itself or in other words insurance against midnight modification of PCB's to "Fix" "Design Errors" in battery operated devices... or in other words a "Shotgun Cure". it only took one time for me to understand that being conservative to the extreme wasn't a bad condition.  <BG>

Doc
At least the board worked the first time... IT WAS Ugly... Though.
12  Using Arduino / General Electronics / Re: Level shifting advice on: April 13, 2014, 11:54:54 am
@ Fungus... The IIC Spec that you are using is not really very current... 400 KHz isn't the IIC upper limit...
Rather the TWI header file is in need of a small change... in order to make the internal pull up optional.
Further the internal 50K weak pull up is not quite right as it doesn't really do much for the capacitive load or DI/DT.
Basically the pull up Must be different at high speed.. I wouldn't design anything that required more than 2 cm of track length unless the track width could be 2 1 mm. I looked at some of my old artwork and realized my error.. 1 mm is much more accurate with the internal pull up, Again because of the DI/DT issue.
If the TWI class as a whole had an option to disable via an ifdef the weak pullup there would be much less difficulty in making the "Standard" work with mixed device Vcc devices.. My background is hardware and I do understand why a PCB trace can be an inductance rather than a "wire".
I use without thinking a maximum value of 4.7K for the IIC bus pull up and If I need to go off board or cannot apply the 2 mm trace width  'condition' I personally will reduce the value of the Pull up. Particularly when there are multiple devices on the same bus.
As bus speed increases PCB traces become transmission lines and it is most necessary to 'adjust' the bus current to allow for the DI/DT issue, Especially mixed Vcc loading issues. I have been long considering "Fixing my TWI.h file to make the pull up an option... This is really an issue.. again with different device Vcc requirements between the controller and the majority of connected TWI devices, the internal weak pull up is frequently inappropriate and should IMO be an option that is controllable with a minor change to the header file using an ifdef condition that allows for applied Vcc for compatibility with 3V3/5V devices.
While I do understand both the engineering handicapped and the knowledgeable engineer, this is a real issue and I feel one that is ignored by the people that are responsible for writing or reviewing the extant Arduino TWI specifications as the Vcc standards? change. When the initial code was written 3V3 Vcc devices were scarce and somewhat beyond those without a good electronics knowledge base... Thus it was again IMO left alone (dumbed down..) to avoid confusion for the electronically handicapped majority of Arduino issues..
I do remember my own issues when I began to design devices that used lower power supply voltages..
In the early 2000's I began to change from 5V Vcc to 3V3 Vcc devices/bus voltages and I made a few mistakes... Before I got it, that the issue Is the DI/DT condition or bus loading that begins at 10 cm sq PCB's with multiple IIC devices. Sometimes to keep within my allowable current budget I had to switch the  pull ups off when not in use or use different communication methods to keep my total board current within the solar panel/battery capacity budget required for the design spec/design cost. This was really an issue when I went from 12V SLA to 2.2V gates cell type SLA batteries.. I remember one design that Had to be 5V from 2 gates cells... I had a boost converter on board to drive a 12V latching soleniod and I used a 5V linear MAX660?
(I really don't remember the part # but it was similar to the MCP1702 IQ class device). My solution was to "Tick" the boost device and connect my regulator to the output of the boost device. Since the solenoid storage cap was 4700 uF the Tick was required every few 100 mS or so and done by monitoring the solenoid power supply to generate the tick when the HV bus got close to the regulator dropout point. It worked well although considered a PITA by the contract programmer..
I consider 50K pull ups suitable only for frequencies below 50 KHz and prefer to tri-state anything on the TWI bus if I need to use longer traces between devices, Conservative.. Certainly but what I designed always worked... After the initial lesson I learned. It doesn't cost more that a cheap mosfet and two extra pull ups for the few devices that required different Vcc levels.. <End Rant>

Doc
13  Using Arduino / Project Guidance / Re: 24V Derivation on: April 11, 2014, 10:05:12 pm
Very Small too, A 2A continuous duty buck mode CV device that commonly sells for 2 or 3 dollars is 20 X 42 X 12 mm. The CV-CC modules at the same current are about twice the size and sell for less than 5 dollars... Both in single quantities...
A 25 watt heat sink is frequently more money... W/O any parts.
The first one I mentioned is one I use frequently as a pre-regulator for the discarded printer power supply power modules I find and or buy from the local "Thrift" stores... A 30V .7A HP Printer supply is 21 watts of power, and here in the US already UL approved.. safe..
 This is for me 5V @ 4A output or 7.5V @ 2.5A, An Ideal input voltage for an Arduino board as the voltage (7.5V) is Ideal for the AMS1117-5.0 regulator on any of the Uno, Mega and Leonardo boards I use.... When I designed my own.... back when I worked for a living were even smaller... An MCP16301 will produce 500 mA from a 16.5 V input and is in an SOT-23-5 case.. I use one of them to support 2  Sure Electronics 3208 scrolling displays that use the Holtek HT1632 IC with 4, 8 X 8 5mm red matrix LED displays Each...

Doc
14  Using Arduino / Project Guidance / Re: 24V Derivation on: April 11, 2014, 08:29:52 pm
If you use a linear regulator as was suggested above... You will need a rather large heatsink as the power Wasted is the load current multiplied by the voltage drop across the linear device... Not really a great idea unless your load current's are very low.
.1 A X (24 - 6) is 1.8 watts and 5 Led's can easily draw .1A or 100 mA.
A switching supply (regulator) is a better choice as the loss is the efficiency X the load power IE a 100 mA load @ 6V is .6W and @ 80% efficiency it would be .8(80% Eff)  X .6 watts (load ) or .48W (loss) vs 2.4 + .6 (load) or 3 watts loss of energy as heat Vs 1.48 Watts for the linear regulator and 1.8/2.4 = a 25% greater efficiency. I tend to think of switchers as Power converters rather than Voltage converters.
The immediate effect for a very light load @ 100 mA seems a small savings But at higher load currents...
EX:
1A X (24V - 6V) is 18 watts of power lost as heat in the linear device but the switcher will dissipate : (1A X 6V ) X .8 [Eff} or 4.8W and where the linear device will dissipate 24 watts of power and 24 watts/4.8watts is a great deal less wasted energy.. a 5X decrease in wasted power...
However this is Not to say that linears are bad... A Low dropout regulator does a nice job of removing switcher noise with a much smaller footprint than a Pi section filter. It is a good idea to use a small linear behind a switcher at low current for..? Measurements or Audio applications...... There is a Lot of voltage gain in a linear Reg and as long as the I/O differential is just great enough to prevent the device from "Dropping Out" or failing to regulate they can be a useful tool... but when improperly used a real headache
15  Community / Exhibition / Gallery / Re: Scrolling LED matrix display - Parola for Arduino on: April 09, 2014, 07:56:37 pm
All I can Say is Thank You both Bill and Marco... I have 8 of the original and 20 of the square Ebay modules with the SMD 7219's (Leave it to CN to Phuck things up)... I had been using a digistump USB power switch [Really Handy] to clear my original modules... BTW I had the artwork reworked to triple the bus width for the common signals, CLK... and no joy... I'm not too sure I made a wise decision in buying 20 of the Ebay modules (the SMD ones)... But so far it really looks like a slight mistake in the initialization order... with the original Parola code... I haven't done much with the MD_72XX code yet. I have a 40 year history with H'ware but pointers are just becoming clear enough to read and understand... Not yet too sure about using them... I have to say that this has been a Very interesting project, Very educational in Many aspects...
Again Thank You BOTH for your hard work.. I own a Saleae Logic... Funny thing but it never occurred to monitor each I and O Vs the clock.. The scope pictures really look like capacitive loading is the issue... A lower value pull-up or some Fast buffering might fix that. However Sharp leading edge generally means an HP filter (faster rise time, sharp trailing edges generally mean a LP filter..  I use a Buono for testing as it has a switcher for the 5V output and a 7.5V wall wart or a 5A PSU adj to 7V out. THe USB switch seems to clear things up But it might take two or three attempts and I have noticed that as the modules are handled the artifacting will re-appear and is cleared by cycling the PSU via the power switch... I've been too busy to build a wooden box to hold two rails (90 Deg angle brackets 10" long) which will with some smoke acrylic for front and rear house both a Pro-Mini and the GPS for the time data... Etc. More latter.. Off to get the latest code.. and try it out. Sure beats an HT1632 though..

Doc
Pages: [1] 2 3 ... 188