Show Posts
Pages: 1 ... 3 4 [5] 6 7 ... 294
61  Using Arduino / Project Guidance / Re: Preparing a RGB Matrix backpack which communicates with arduino.. on: September 10, 2014, 12:08:36 pm
I think I may have figured out what has to be done.  How to do it is a different story.

There are two or more microprocessors involved here.
 
There is the UNO R3 with its ATMega328 microprocessor that is ultimately going to be used to control his RGB matrix display.  In order to control the display a program (sketch) will have to be transferred to the microprocessor.  This transfer is typically done with the help of a bootloader program that is already resident in the microprocessor.

The RGB matrix is mounted on a backpack that uses an ATMega8 microprocessor to convert serial (SPI) information from the UNO into a form that the RGB matrix requires.  There is a program already resident in that microprocessor but this program has to be updated.  Unfortunately this microprocessor does not have a bootloader resident in its memory so the update will have to be done using a different technique.

This different technique involves using an Arduino as an ISP (in-system programmer).  The Arduino can be the same UNO that you will ultimately use to control the updated display.

All of the transfers involve what are known as 'hex' files.  You will not be uploading a new bootloader anywhere but you will be using the same techniques that are normally used to do so, only you will be using those techniques to upgrade the software on your backpacks.

I hope that clears up what you are trying to do.  Perhaps the others can help you with the actual techniques.


Don
62  Using Arduino / Motors, Mechanics, and Power / Re: Determining bi-polar stepper wiring sequence on: September 10, 2014, 09:25:57 am
From reply # 6
Quote
when shopping for an L298 driver

From reply # 11
Quote
Not the chip. I said DRIVER.

Since the L298 is a driver (it describes it as such in the introductory paragraph of the datasheet), and since it has a 5 Volt pin I assumed that you were talking about the L298 chip itself.  Nothing in your reply really pointed out that you were referring to the circuitry that drives this DRIVER chip.

Quote
Scroll down to the bottom of the page at the above link and look at the schematic. See the onboard 5V regulator ?
See it in the photos ?

Sorry, my crystal ball was in the shop when I was reading reply #6.  I wasn't aware that I would have to refer to a link that was going to be posted 36 hours later, in reply #11, in order to properly figure out what 5 volt pin you were talking about.

Don

63  Using Arduino / Motors, Mechanics, and Power / Re: Determining bi-polar stepper wiring sequence on: September 09, 2014, 11:22:44 pm
Things to look for when shopping for an L298 driver.
. . .
3- BE FORWARNED ! The 5V pin on these drivers is an OUTPUT , NOT an INPUT ! There is an onboard 5V regulator. This pin is to supply 5V to logic circuitry so you can everything off one supply connected to the driver. CHECK IT WITH A METER to confirm !
. . .

The data sheets that I have seen refer to this as an input pin.

Don
64  Using Arduino / Project Guidance / Re: rpm cutoff switch...where to start on: September 09, 2014, 10:55:16 pm
Just remember that if you do that you relinquish control of the motor to the sw. The blade will start and stop without asking you.

That's probably why he never mentioned anything about controlling the motor.

Don
65  Using Arduino / Displays / Re: LCD Display Error on: September 09, 2014, 08:49:22 pm
Quote
Any other suggestions?
You want all of the code in setup because the information should only be sent to the LCD once.
You do not want any kind of loop for the same reason.
You do not need a delay for the same reason.
You do not have to set the cursor to (0,0) since that is the default position after initialization.


Code:
#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

void setup()
  {
  lcd.begin(16, 2);                          // put your LCD parameters here
  lcd.print("hello, world!");
  lcd.setCursor(0,1);
  lcd.print("it works!");
  }

void loop()
  {
  }

Code:
#include <LiquidCrystal.h>

//LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);       // put your pin numbers here

void setup()
  {
    lcd.begin(20, 4);                          // put your LCD parameters here
    for (char i=47; i<127; i++)                // send 80 consecutive displayable characters to the LCD
      {
        lcd.print(i);
        delay(100);                            // this delay allows you to observe the addressing sequence
      }
  }


void loop()
  { 
  }

Don
66  Using Arduino / Displays / Re: LCD Display Error on: September 09, 2014, 04:11:21 pm
Take the code out of loop and put it in setup.

Don
67  Using Arduino / Displays / Re: LCD always gives black boxes.. on: September 07, 2014, 12:39:18 pm
Quote
Then I read some point from book and I saw I forget wiring R/W to GND.

How do you account for this exchange way back in replies #5 and 6?

Quote
Quote
- Make sure that LCD pin 5 is connected to GND.
Yes it's connected to GND.

Don

68  Using Arduino / Displays / Re: LCD 16x2 right half won't work on: September 06, 2014, 10:21:36 am
Quote
Well, given both of those pictures are of the display that is "malfunctioning", it started to look like an initialisation fault and I was checking whether initialising it as the wrong display dimensions, such as accidentally defining it as LCD.begin(16,1) would cause that behaviour, but I am quite unable to replicate it.

Try doing that again because, as I mentioned above, that (the first photo) is precisely what should be displayed if you initialize a 16x2 as a 16x1.  I haven't got an LCD set up right now but I'll check it out when I get a chance.

Don
69  Using Arduino / Displays / Re: LCD 16x2 right half won't work on: September 06, 2014, 10:16:51 am
Your first photo shows the typical result of a display that has not been correctly initialized.

If you just connect pins 1, 2, and 3 of a 16x2 display you will get that picture because the internal reset circuit sets up the controller for a 1-line display.

If you connect all of the required pins and run a proper initialization routine then the display will be blank or all of the character positions will show blocks (depending on the contrast setting).

If one or more wires are incorrectly connected (this would include poor soldering) or if you do not run a proper initialization routine then you will get one row of blocks on a two row display, two rows of blocks on a four row display, or if you have a true 16x1 display (very rare) eight blocks on the left and 8 blank spaces on the right.

In your case I would look into the soldering -  it looks pretty bad.  Check out this information from Adafruit --> https://learn.adafruit.com/adafruit-guide-excellent-soldering/common-problems

Your second photograph shows the typical results of a display with a poor connection between the pc board and the display.  Try pressing (lightly) on the display bezel and see if things change.


Don
70  Using Arduino / Displays / Re: LCD 2*16 WOULDN'T WORK WITH ARDUINO MEGA on: September 04, 2014, 09:53:50 pm
Quote
IT SHOW ME SQUARE
What exactly does this mean?  You will get a single row of 16 rectangles if the initialization is incorrect but you won't see them if pin 3 is left open.

I think it is time for you to disconnect everything and start again.

Here is my generic step by step approach that should work:

(1) If the module has a backlight then get it working properly.  This involves only pins 15 and 16 on most LCD modules.  Make sure to use a current limiting resistor if there is none on the LCD module.

(2) Get the power and contrast working properly.  This involves only pins 1, 2, and 3 on most LCD modules.  You should be able to just barely see blocks on one row of a two row display and on two rows of a four row display. 

NOTE:  The Arduino has not been used yet, except as a possible source for the power needed for the first two steps.  Do not try to go any further until this is working.  If you don't see the blocks then no amount of program code will help.

(3) Connect the LCD R/W pin (pin 5) to GND.

(4) Connect the six control and data wires between your LCD module and your Arduino.

(5) Upload your sketch and it should work.


Troubleshooting:

If you have a 16x1 display and there are blocks only on the left half of the row in step 2 then use lcd.begin(8, 2); in your sketch.

If you still don't get a display then make sure that your wiring matches the numbers in the descriptor (or vice versa).


Code:
//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

If you get a display but it is garbled or has some other problems then try again with a 'static' sketch, one that displays a simple message on the top row of the display and then stops.  All of your code should be in setup() and loop() should be empty between the brackets.

Code:
#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

void setup()
  {
  lcd.begin(16, 2);                          // put your LCD parameters here
  lcd.print("hello, world!");
  lcd.setCursor(0,1);
  lcd.print("it works!");
  }

void loop()
  {
  }

If you are still having problems then we need to see a photograph of your setup that clearly and unambiguously shows all of the connections between your Arduino and your LCD module.  We also need a copy/paste version of the code that you are actually using, not a link to the code that you think you are using.
71  Using Arduino / Displays / Re: LCD text wrapping function help on: September 04, 2014, 06:55:41 pm
Quote
... but the LCD im using likely wont work because its controlled via I2C  ...

In general you will get appropriate responses more quickly if you put tidbits of information like that in the topic title.

Don
72  Using Arduino / Displays / Re: LCD text wrapping function help on: September 04, 2014, 05:09:57 pm
Why don't you take a look at the LiquidCrystal1.0 library?  This library was actually written to deal with 40x4 displays but it works with smaller displays as well.  This library also compensates for the inherent LCD line wrap behavior so that it works as you would expect, 1--2--3--4.

To get a copy start here:--> http://code.google.com/p/liquidcrystal440/ and follow the Downloads link to get to the latest version.


Don
73  Using Arduino / Project Guidance / Re: Need advice for my EMG based arm robot on: September 04, 2014, 12:02:52 pm
Quote
EMG based arm robot 

I think you mean ARM based EMG robot
How do you come up with that interpretation when he clearly said "The robot will be controlled wirelessly through the sensors (EMG pads) which will be put on my arm. "  ?

Don
74  Using Arduino / Project Guidance / Re: Arduino rpm control, rc dle engine on: September 03, 2014, 09:03:18 pm
Quote
The engine works with cdi ignition which has a connection(3 wires like servo connection) to an external tachometer (rpm meter)
How can I connect the ignition box to the arduino to get the rpm?

What he really needs to provide is more information about the CDI system.

The information he needs is already present on the three wires (probably the white one) going to the display.  That information is most likely in the form of pulses related to the RPM although it could possibly be serial speed data already converted in the big silver box.


Don
75  Using Arduino / Displays / Re: Problems with currect displaying on LCD on: September 03, 2014, 07:57:02 pm
This is a common problem with several solutions.  You have to 'erase' any three digit number before trying to display a two digit number otherwise part of the previous value remains on the screen.

In my opinion the most straightforward technique is:
- position the cursor
- display three [space] characters (0x20)
- reposition the cursor
- display your new value

Old:
    lcd.setCursor(0,1);
    lcd.print(pos);


New:
    lcd.setCursor(0,1);
    lcd.print("   ");
    lcd.setCursor(0,1);
    lcd.print(pos);


Don
Pages: 1 ... 3 4 [5] 6 7 ... 294