1. 8 rows, 8 columns
8 * 8 = 64.

To illuminate an LED you pull its row to V+ and its column to V- (or vice-versa). MCU pins are three state -- HIGH (V+, VCC, or VDD), LOW (V-, ground, VEE, or VSS), and input/high-z (effectively off)
If you want display an image, you probably need to loop through and display each row individually and make use of persistence of vision.

Not sure if you need external current limiting resistors or if they're built-in, check the datasheet. If in doubt, add them anyway. Better safe than sorry. I wouldn't go lower than 200 ohm.

2. 16 rows, 16 columns
16 * 16 = 64.

To illuminate an LED you pull its row to V+ and its column to V- (or vice-versa).
If you want display an image, you probably need to loop through and display each row individually and make use of persistence of vision.

Not sure if you need external current limiting resistors or if they're built-in, check the datasheet. If in doubt, add them anyway. Better safe than sorry.
I have no idea how to pull V+ or V-
This component does not have a datasheet provided on the website I got it from which was partly why I was confused on how the pins worked.

Anyway, I'm completely new to this stuff so I'm going to just start with some buttons and blinking LED's but I bought the 8x8 grid for later when I have slightly more knowledge. I was just curious on how I would end up operating the device.

I'll throw a resistor on just in case then just start switching wires around to see what lights up

3. Bah you quoted me before I could fix my terribad arithmetic.
Funny x 1 Friendly x 1 (list)

4. Watts are a unit of power.

If you have a 50W load, then it's 50W of power dissipated in that load. You don't have to have diodes that are rated for 50W.

The power dissipation of the diodes is going to be ~0.7V * current (in amps) for silicon diodes.

Edited:

They would if they were in series.
They're in parallel for bridge rectifiers.

Edited:

You don't really need to be a douche about it.
http://en.wikipedia.org/wiki/Diode_bridge, Pretty sure the current passes through two diodes though?
Just used LTspice to simulate half wave and full wave, ripple is pretty much a non issue for my application, the peak current for the half-wave (going through the diode) is about ~7A where as the full-wave gets ~4A through the diodes,
Anyway, this is what i mean by efficiency, full wave suffers the diode drop of two, 1.4*4=5.6W where as half wave only suffers a single diode drop, .7*7=4.9W (also, the full-wave suffers it twice as much)
A half-wave rectifier is the better choice for the application, smaller, easier to source and more power efficient.

5. Oh looky here what arrived today.

What could it be? Anthrax? Let's hope.

Afdjkmsd fucking packages.

Ooh, what could that be? Can you guess?

I wouldn't suggest taking a picture while sneezing. Anyways, it must be pretty clear what it is now!

Yes! It's stuff!

Stuff!

Stuff!!!!

STUFF!!!

AAH!! MORE STUFF!!

So much stuff..

Gentlemen, I've got work to do

Edited:

The sweet smell of creating the very first thing ever and it works.

Winner x 9 (list)

6. Nice!

7. I thought I might as well present an older project.

Basically, it's a dice. An automated one.
This schematic is not 100% up to date, I don't have Crocodile Physics on this computer, but the only differences are the data collection start button is not hooked to 5V, but rather 24V to actually trigger the digital sensor in the PLC we used for this and we scrapped the PLC reset memory button because my software is FUCKING FLAWLESS. It was not necessary, either way.

Anyway, the idea is that a dice is a very old piece of technology and we wanted to improve the possibilities with a physical dice (hell, we had to come up with something, it's for some exam project).
We did this by still allowing manual dice "rolls", represented by the diodes to the right in the schematic. This is made possible with the binary counter hooked to the 555-timer circuit, dimensioned to 50 Hz. The button near the 555 chip is the actual manual dice "roll" button.

Then we have the data collection, which is where it gets ~automated~ and cool. Basically, instead of pressing the button, we allowed the user to define a number of desired dice rolls from a PLC GUI (touchscreen and shit), as seen below. Excuse the Danish.

To pull it off we allowed the PLC to override the button by sending out an analogue value of 16384, which corresponds to 5V, in front of the button, essentially acting like a button, only automatic.
So what we decided to do, since unless we found a way to modify the 555-timer circuit on the fly we didn't really have any other option, was to modify the length of the AO_slag pulse (see the schematic). Now from what we could gather, PLC don't have any way to call a random number, so we had to come up with a way to do it ourselves:

This is our formula, which suffices both for sequence length and dice roll length for our needs.

Here's an example, assuming the start-seed is 560:
seed = ((560+1)*75) MOD 1024-1 = 90
seed = ((90+1)*75) MOD 1024-1 = 680
seed = ((680+1)*75) MOD 1024-1 = 898

The start-seed is 500 by default, but the user is allowed to change it, as seen below:
http://localhostr.com/files/Uw6xMvM/seedz.png

So we wanted to use the data, but it needed to be in an edible format, which is what our digital-analogue circuit is for. Basically for each dice roll, it's a different voltage getting to the PLC.

1 = 0.0V
2 = 1.25V
3 = 2.5V
4 = 3.75V
5 = 5V
6 = 6.25V

Converting these to the analogue values, we could work with them, using the data for statistics and various other probability-calculations.

The last part of the software is simulation, which essentially is a modified data collection algorithm to see how many tries it needs to go through in order to reach whatever dice roll you desire.

For anyone interested, here's the source. Some of the variables and all the comments are in Danish.
Code:
```cyclecounter := cyclecounter + 1;

(* Simulering *)
IF sim_init = 1 THEN (* sim_init fungerer som en hovedafbryder *)
IF step = 0 THEN (* Det indebærer at man ikke kan begynde at simulere midt i en data collection, for eksempel *)
(* Ved initialisering af simulering: Clear hukommelse der har med simulering at gøre *)
sim_slag := 0;
sim_totalkast := 0;
step := 0;
step := 4;   (* På den måde undgår vi konflikter fra brugerens interferens *)
END_IF
ELSE
IF step = 4 THEN
(* Ved evt. afbrydelse midt i simulering: Clear hukommelse der har med simulering at gøre *)
sim_slag := 0;
sim_totalkast := 0;
step := 0;
END_IF
END_IF

CASE step OF

0:

IF EDGENEG(DI_data_collection) THEN
IF seed > 0 THEN
(* Clear hukommelse *)
totalslag := 0;
total_1 := 0;
total_2 := 0;
total_3 := 0;
total_4 := 0;
total_5 := 0;
total_6 := 0;
procent_1 := 0;
procent_2 := 0;
procent_3 := 0;
procent_4 := 0;
procent_5 := 0;
procent_6 := 0;
step := 1;
END_IF
END_IF

1: (* Data collection *)

seed := ((seed + 1) * 75) MOD (1024 - 1); (* Udregn det nye seed til vores pseudo-tilfældige formular *)
t_kast := cyclecounter + seed; (* Dette beskriver længden af terningeslaget *)

AO_slag := 16384; (* For 5V gælder 32767 / 2 *)

step := 2;

2: (* Data collection *)

IF cyclecounter >= t_kast THEN
AO_slag := 0;

IF (AI_terning > -1) AND (AI_terning < 1000) THEN
(* 1'er *)
total_1 := total_1 + 1;
step := 3;
ELSIF (AI_terning > 3000) AND (AI_terning < 5000) THEN
(* 2'er *)
total_2 := total_2 + 1;
step := 3;
ELSIF (AI_terning > 7000) AND (AI_terning < 9000) THEN
(* 3'er *)
total_3 := total_3 + 1;
step := 3;
ELSIF (AI_terning > 11000) AND (AI_terning < 13000) THEN
(* 4'er *)
total_4 := total_4 + 1;
step := 3;
ELSIF (AI_terning > 15000) AND (AI_terning < 17000) THEN
(* 5'er *)
total_5 := total_5 + 1;
step := 3;
ELSIF (AI_terning > 19000) AND (AI_terning < 21000) THEN
(* 6'er *)
total_6 := total_6 + 1;
step := 3;
END_IF

END_IF

3:

IF (totalslag + 1) = slag_antal THEN (* Når det brugerbestemte antal slag er opnået... *)
procent_1 := (total_1 * 100) / slag_antal; (* Udregner den procentvise del 1'erne betyder *)
procent_2 := (total_2 * 100) / slag_antal; (* Udregner den procentvise del 2'erne betyder *)
procent_3 := (total_3 * 100) / slag_antal; (* Udregner den procentvise del 3'erne betyder *)
procent_4 := (total_4 * 100) / slag_antal; (* Udregner den procentvise del 4'erne betyder *)
procent_5 := (total_5 * 100) / slag_antal; (* Udregner den procentvise del 5'erne betyder *)
procent_6 := (total_6 * 100) / slag_antal; (* Udregner den procentvise del 6'erne betyder *)
step := 0;
ELSE (* Hvis ikke: tæl og gå tilbage til step 1 for at udføre det næste terningeslag *)
totalslag := totalslag + 1;
step := 1;
END_IF

4: (* Simulering *)
(* For simulering gælder et lavere max seed fordi terningeslagene skal udføres hurtigere (FOR lave vil resultere i utroværdigt resultat) *)
seed := ((seed + 1) * 75) MOD (512 - 1); (* Udregn det nye seed til vores pseudo-tilfældige formular *)
t_kast := cyclecounter + seed; (* Dette beskriver længden af terningeslaget *)

AO_slag := 16384; (* For 5V gælder 32767 / 2 ; send 5V til terningen for at påbegynde slaget *)

step := 5;

5: (* Simulering *)
IF cyclecounter >= t_kast THEN
(* Slut for analog output (5V) til terningen fordi slaget er fuldført *)
AO_slag := 0;

IF (AI_terning > -1) AND (AI_terning < 1000) THEN
(* 1'er *)
sim_slag := 1;
sim_totalkast := sim_totalkast + 1;
step := 6;
ELSIF (AI_terning > 3000) AND (AI_terning < 5000) THEN
(* 2'er *)
sim_slag := 2;
sim_totalkast := sim_totalkast + 1;
step := 6;
ELSIF (AI_terning > 7000) AND (AI_terning < 9000) THEN
(* 3'er *)
sim_slag := 3;
sim_totalkast := sim_totalkast + 1;
step := 6;
ELSIF (AI_terning > 11000) AND (AI_terning < 13000) THEN
(* 4'er *)
sim_slag := 4;
sim_totalkast := sim_totalkast + 1;
step := 6;
ELSIF (AI_terning > 15000) AND (AI_terning < 17000) THEN
(* 5'er *)
sim_slag := 5;
sim_totalkast := sim_totalkast + 1;
step := 6;
ELSIF (AI_terning > 19000) AND (AI_terning < 21000) THEN
(* 6'er *)
sim_slag := 6;
sim_totalkast := sim_totalkast + 1;
step := 6;
END_IF

END_IF

6: (* Simulering *)

IF sim_slag = sim_oensket THEN (* Hvis udfaldet af terningen matcher det ønskede udfald er vi færdige *)
sim_init := 0;
step := 0;
ELSE (* Hvis ikke, så prøver vi da bare igen: tilbage til step 4 og gentag (i samme ånd som ved data collection) *)
sim_slag := 0;
step := 4;
END_IF

END_CASE```
Edited:

There's a lot more detail to this, we wrote a 70-page report on it, ask if you want to know something.
Informative x 2 Programming King x 1 (list)

8. http://en.wikipedia.org/wiki/Diode_bridge, Pretty sure the current passes through two diodes though?
Just used LTspice to simulate half wave and full wave, ripple is pretty much a non issue for my application, the peak current for the half-wave (going through the diode) is about ~7A where as the full-wave gets ~4A through the diodes,
Anyway, this is what i mean by efficiency, full wave suffers the diode drop of two, 1.4*4=5.6W where as half wave only suffers a single diode drop, .7*7=4.9W (also, the full-wave suffers it twice as much)
A half-wave rectifier is the better choice for the application, smaller, easier to source and more power efficient.
Took me a while, but I see what you're saying.
I still feel like there should be some disadvantage to throwing out half the wave. I mean for an ideal transformer, the current in the primary should be proportional to the current in the secondary, so the primary won't be sourcing any current for that half of the wave. However, I really doubt it's that simple for practical transformers. There will probably be some loss due to currents induced in the core for that half of the waveform. I am unsure of how significant this is.

What is this for, anyway? I can't think of many situations where ripple really doesn't matter that aren't totally trivial.

9. Took me a while, but I see what you're saying.
I still feel like there should be some disadvantage to throwing out half the wave. I mean for an ideal transformer, the current in the primary should be proportional to the current in the secondary, so the primary won't be sourcing any current for that half of the wave. However, I really doubt it's that simple for practical transformers. There will probably be some loss due to currents induced in the core for that half of the waveform. I am unsure of how significant this is.

What is this for, anyway? I can't think of many situations where ripple really doesn't matter that aren't totally trivial.
He is trying to make a switch mode (buck) that connects directly to mains.

10. He is trying to make a switch mode (buck) that connects directly to mains.
Without isolation?

Saying this is a bad idea would be an understatement.
Agree x 4 (list)

11. Without isolation?

Saying this is a bad idea would be an understatement.
Without isolation.

12. Without isolation.
I think I understand what Chryseus was saying now. I think the first time I read his post I unconsciously thought something along the lines of "nobody in their right mind would do that" and discarded that part as nonsense.
Agree x 2 (list)

13. The reason he wants to use one diode instead of 4 or a all in one rectifier package is since he wants to "save" space.
Funny x 4 (list)

14. - snip -

Late as heck...
Informative x 1 Useful x 1 Late x 1 (list)

15. The reason he wants to use one diode instead of 4 or a all in one rectifier package is since he wants to "save" space.
Just totally disregard the argument about efficiency while you're at it and the fact a single diode is easier to source and cheaper.
Funny x 4 (list)

16. Just totally disregard the argument about efficiency while you're at it and the fact a single diode is easier to source and cheaper.
Pay 2 cents for one instead of 8 cents for four?
Agree x 2 (list)

17. I once bought 2 belts with 100 diodes each for 3€. It will probably enough for the next 3-4 years or so.

18. Relay Oscillator!

Funny x 3 Zing x 1 (list)

19. Relay Oscillator!

Did you use both relays for your oscillator? I think I've seen it being done with one relay before.

20. Did you use both relays for your oscillator? I think I've seen it being done with one relay before.
You can of course use only one, but I thought it was more exciting when I use 2 relays.
Agree x 1 (list)

21. Relay Oscillator!

Well now I know what to do should I ever have too many damn relays and I want to wear them all the fuck out really fast. Thanks, Science!

22. Well now I know what to do should I ever have too many damn relays and I want to wear them all the fuck out really fast. Thanks, Science!
Actually they stopped working 5 seconds after the video, lol
Funny x 3 (list)

23. Managed to get serial communications between my ATTiny2313 and my PC working, finally! Now time to make some creative applications using it.

Edit:
Here's a pic I took of the terminal. Both strings are sent to the terminal from my Tiny, wrote a small print function. Pressing enter sends a byte to the Tiny which prompts a carriage return, vertical tab, and a '>'. Next I'll quickly write up a command parser so I can have it execute functions using the terminal.

My setup-
Artistic x 1 Useful x 1 (list)

24. Got my Arduino in the mail today. I've been doing some small tests on the shitty breadboard I have. Can't wait to try out some more complex experiments when my bigger breadboard and more complex components arrive tomorrow :)

25. I can't get my LCD to display any text :(

26. I can't get my LCD to display any text :(

27. Have you adjusted the contrast?
Thank you
I forgot to put a resistor from LCD Pin to Ground.

edit:
Also cut down on the backlight. 5V was a little too bright.
Funny x 7 Zing x 1 Winner x 1 (list)

28. Here is a simple question: How do I protect a microcontroller so that nothing happens to it or it's ports when I finally do something retarded when wiring it to something? E.g. connect 24V where 5V should go, etc.

29. Here is a simple question: How do I protect a microcontroller so that nothing happens to it or it's ports when I finally do something retarded when wiring it to something? E.g. connect 24V where 5V should go, etc.
-snip- Incorrect advice, I know nothing

Edit:

Finished argument parsing in my shell, didn't get much time to work on it over the week but its finally the weekend, time to break out my soldering iron and board and get to work!
Disagree x 2 (list)

30. Don't take my word on this, but I think capacitators are used for this? You wire one up in front and it regulates voltage if I understand correctly, but get someone to double check this statement first.
It doesn't work like that.
Caps are generally used for filtering in power supply circuitry. They will not regulate voltage.

As for the overvoltage issue, on AVR microcontrollers (and boards that use them, like the Arduino), each I/O pin already has voltage clamping diodes which drain current when voltage exceeds VCC. In this case, all you need to do to protect the diode is use current-limiting resistors.
For ICs without clamping/protection diodes built-in, you can use something like this:

or

That thing in the middle of the latter diagram is a zener diode. They're diodes designed to go into zener breakdown at a particular reverse bias voltage.
Friendly x 1 Informative x 1 Agree x 1 (list)

31. How do you guys know which resistors and caps to buy before you decide on a project?

I forgot my collection at home when I moved here from Cyprus so now I have to wait a month or so for sister to mail it to me. In the mean time, I can't think of anything smarter than just buying 5 of everything.

32. How do you guys know which resistors and caps to buy before you decide on a project?

I forgot my collection at home when I moved here from Cyprus so now I have to wait a month or so for sister to mail it to me. In the mean time, I can't think of anything smarter than just buying 5 of everything.
Most of us have a full set of resistors (usually consisting of the E12 or E24 series) so the only time you need to buy some is when you need high power, low TC or high accuracy.
The same pretty much goes for capacitors.

33. So, I'm thinking about picking up an inexpensive FPGA board at the end of November, and I'm wondering if anyone here in the thread has experience working with FPGAs, or has any tips for a beginner?

I've got my eye on the Terasic DE0-nano, mainly because it's cheap, and I'm thinking of starting with Verilog as opposed to VHDL because I find the syntax less intimidating. I'm thinking my biggest problem is going to be shifting back into digital logic design as opposed to procedural programming.

34. So, I'm thinking about picking up an inexpensive FPGA board at the end of November, and I'm wondering if anyone here in the thread has experience working with FPGAs, or has any tips for a beginner?

I've got my eye on the Terasic DE0-nano, mainly because it's cheap, and I'm thinking of starting with Verilog as opposed to VHDL because I find the syntax less intimidating. I'm thinking my biggest problem is going to be shifting back into digital logic design as opposed to procedural programming.
If you have some extra money you should look at the DE1.

35. So, I'm thinking about picking up an inexpensive FPGA board at the end of November, and I'm wondering if anyone here in the thread has experience working with FPGAs, or has any tips for a beginner?

I've got my eye on the Terasic DE0-nano, mainly because it's cheap, and I'm thinking of starting with Verilog as opposed to VHDL because I find the syntax less intimidating. I'm thinking my biggest problem is going to be shifting back into digital logic design as opposed to procedural programming.
I was actually looking at the same dev board. I've done a little VHDL for a course. The language itself isn't really that bad, but the Xilinx software is buggy to the point of uselessness. It seems like FPGAs are one of the more difficult things to get started with as a hobbyist. It's not like MCUs where you've got a \$5 system with integrated memory in a DIP package, ready for breadboarding, plus DIY programmers and a ton of well-supported (usually open-source) software tools.

With FPGAs, you're pretty much forced to use the manufacturer's proprietary tools, which are usually garbage.

36. How do you guys know which resistors and caps to buy before you decide on a project?

I forgot my collection at home when I moved here from Cyprus so now I have to wait a month or so for sister to mail it to me. In the mean time, I can't think of anything smarter than just buying 5 of everything.
I once bought a resistor and ceramic cap pack. It basically has all more or less common values, and if it doesn't have it, you can combine some resistors or caps together to get your desired value.
Agree x 2 (list)

37. This is probably a long shot but, for one of my modules at uni we will be programming ARM CPU's.
I havent actually started the labs so I dont know what version/language/anything we will use other than just ARM.
I wanted to get some basic experience and wondered if there are any good tutorials/simulators/IDE's...

38. Programming an ARM in something like C is just like programming any other processor. If you're writing assembly, that'll be a lot cleaner/simpler than most other processors, since ARM is a RISC system with a crapton of general-purpose registers. It's got some nice features like conditional execution of any basic instruction, and being able to do arithmetic operations without affecting the current value of the status register.

I had the misfortune of having to learn assembly on a Freescale/Motorola 6800-type processor. It was godawful.
Funny x 2 Agree x 1 (list)

39. Do you know of any tutorials?
Also are there any simulators? or emulators?

40. Do you know of any tutorials?
Also are there any simulators? or emulators?
There is a list of some useful stuff in the OP.
As for circuit simulators the free Java Circuit Simulator is great for testing simple things, other better simulators I can recommend are Qucs, LTSpice and Multisim 10 (non-free) but nothing beats doing it yourself and seeing the results, simulators are not perfect.