Go Down

Topic: I did it! (Read 1 time) previous topic - next topic

BeauM

Nov 20, 2019, 09:48 pm Last Edit: Nov 20, 2019, 09:51 pm by BeauM
I made 4 LED's blink!!!!



https://i.imgur.com/11vP8BC.mp4

New guy here.  I took C+ classes back in high school, 20 something years ago.  So basically starting from scratch.  I'm much more comfortable with hardware than software.  I've been doing a bunch of research and have a lot of reading to do in these forums before I start asking project specific questions.  My first arduino project is pretty ambitious, but I love a good challenge.  I learned a lot just from this blinking LED portion, specifically that I did it all wrong and that delay() is the devil.

Anyway, thanks in advance for when I start asking dumb questions.   I think the examples in the "multiple things at once" thread will help immensely.


Robin2

Welcome. Have fun.

There is great satisfaction when you get something to work.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

ballscrewbob

Onward and upward...
Welcome and I second Robins sentiment.

Bob.

It may not be the answer you were looking for but its the one I am giving based on either experience, educated guess, google or the fact that you gave nothing to go with in the first place so I used my wonky crystal ball.

larryd

#3
Nov 21, 2019, 06:23 pm Last Edit: Nov 21, 2019, 06:24 pm by larryd
Everything is is parallel, or at right angles.

Wiring is neat and components are nicely bent.

I love your OCD! it reminds me of my stuff.

Great fun.

Here is some stuff to study:

Arduino links of interest.

How to use this forum:
https://forum.arduino.cc/index.php?topic=149014.0 

Listing of downloadable 'Arduino PDFs' :
Either Google   >>>- - - - >       arduino filetype: pdf
Or
https://www.google.ca/search?q=arduino+filetype%3A+pdf&rlz=1C9BKJA_enCA739CA739&oq=arduino+filetype%3A+pdf&aqs=chrome..69i57j69i65.1385j0j7&hl=en-US&sourceid=chrome-mobile&ie=UTF-8

Listing of downloadable 'C++ PDFs' :
Either Google   >>>- - - - >       C++ filetype: pdf
Or
https://www.google.ca/search?q=c%2B%2B+filetype%3A+pdf&rlz=1C9BKJA_enCA739CA739&oq=c%2B%2B+filetype%3A+pdf&aqs=chrome..69i57.22790j0j7&hl=en-US&sourceid=chrome-mobile&ie=UTF-8

Arduino cheat sheet:
https://dlnmh9ip6v2uc.cloudfront.net/learn/materials/8/Arduino_Cheat_Sheet.pdf

Watch these:
Arduino programming syntax:
https://m.youtube.com/watch?v=CbJHL_P5RJ8 

Arduino arithmetic operators:
https://m.youtube.com/watch?v=UUx0_s-ElSs   

Arduino control flow:
https://m.youtube.com/watch?v=QpPGGuaGbCA

Arduino data types:
https://m.youtube.com/watch?v=xmZXWMEltEc 

Understanding Destructive LC Voltage Spikes:
https://www.pololu.com/docs/0J16/all
OR
https://www.pololu.com/docs/pdf/0J16/destructive_LC_voltage_spikes.pdf   

Why MOSFET gate resistors:
https://youtu.be/o0OHGWCZ7B0   


Some things to read

LCD information:
https://learn.adafruit.com/character-lcds?view=all   
OR
https://cdn-learn.adafruit.com/downloads/pdf/character-lcds.pdf?timestamp=1573085286     

Reading a schematic:
https://learn.sparkfun.com/tutorials/how-to-read-a-schematic

Language Reference:
https://www.arduino.cc/en/Reference/HomePage

Foundations:
https://www.arduino.cc/en/Tutorial/Foundations

How and Why to avoid delay():
http://playground.arduino.cc/Code/AvoidDelay

Demonstration code for several things at the same time.
http://forum.arduino.cc/index.php?topic=223286.0

Multitasking:
Part 1:
https://learn.adafruit.com/multi-tasking-the-arduino-part-1?view=all   

Part 2:
https://learn.adafruit.com/multi-tasking-the-arduino-part-2?view=all   

Part 3:
https://learn.adafruit.com/multi-tasking-the-arduino-part-3?view=all   

Sparkfun Tutorials:
https://learn.sparkfun.com/tutorials?page=all   

Micro Controllers:
https://learn.adafruit.com/mcus-how-do-they-work?view=all   

Useful links:
https://forum.arduino.cc/index.php?topic=384198.0

Arduino programming traps, tips and style guide:
http://www.gammon.com.au/forum/?id=12153

Call for useful programming discussions
https://forum.arduino.cc/index.php?topic=383980.0   

Jeremy Blume:
https://m.youtube.com/playlist?list=PLA567CE235D39FA84

Arduino products:
https://www.arduino.cc/en/Main/Products

Motors/MOSFETs
http://www.gammon.com.au/motors

Switches:
http://www.gammon.com.au/forum/?id=11955

https://www.amazon.ca/Arduino-Cookbook-Recipes-Enhance-Projects/dp/1449313876/ref=sr_1_1?ie=UTF8&qid=1522801721&sr=8-1&keywords=arduino+cookbook   



Share tips you have come across, 500+ posts:
https://forum.arduino.cc/index.php?topic=445951.0 

Images from above:
https://www.google.com/search?q=%E2%80%9CShare+tips+you+have%E2%80%9D+larryD+site:https://forum.arduino.cc&prmd=nmvi&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiJw-zu68ncAhXPGTQIHWCDCNwQ_AUIFCgE&biw=1024&bih=653   

Debug discussion:
https://forum.arduino.cc/index.php?topic=215334.msg1575801#msg1575801   

Frequently Asked Questions:
https://www.arduino.cc/en/main/FAQ#toc10   

Number 'type's.
- boolean (8 bit) - simple logical true/false, Arduino does not use single bits for bool
- byte (8 bit) - unsigned number from 0-255
- char (8 bit) - signed number from -128 to 127. The compiler will attempt to interpret this data type as a character in some circumstances, which may yield unexpected results
- unsigned char (8 bit) - same as 'byte'; if this is what you're after, you should use 'byte' instead, for reasons of clarity
- word (16 bit) - unsigned number from 0-65535
- unsigned int (16 bit)- the same as 'word'. Use 'word' instead for clarity and brevity
int (16 bit) - signed number from -32768 to 32767. This is most commonly what you see used for general purpose variables in Arduino example code provided with the IDE
- unsigned long (32 bit) - unsigned number from 0-4,294,967,295. The most common usage of this is to store the result of the millis() function, which returns the number of milliseconds the current code has been running
- long (32 bit) - signed number from -2,147,483,648 to 2,147,483,647
float (32 bit) - signed number from -3.4028235E38 to 3.4028235E38. Floating point on the Arduino is not native; the compiler has to jump through hoops to make it work. If you can avoid it, you should. We'll touch on this later.

You select the 'type' best suited for your variables.

ex:
- your variable does not change and it defines a pin on the Arduino.  const byte limitSwitchPin = 34;
- since an analog variable can be 0 to 1023, a byte will not do, you can select 'int'.    int temperature;
- if your variable needs to be within -64 to +64 a 'char' will do nicely.     char joystick;
- if your variable is used for ASCII then you need type 'char',  char myText[] = {"Raspberry Pie Smells"};
- if your variable enables some code then boolean can be used.   boolean enableFlag = false;
- millis() returns the time in ms since rebooting,   unsigned long currentTime = millis();
etc.


Oh, and have fun too :) !


No technical PMs.
If you are asked a question, please respond with an answer.
If you are asked for more information, please supply it.
If you need clarification, ask for help.

BeauM

Wow that's a lot of info, thanks!

That setup is just the mock-up, it will look way better in the final installation.  Eventually it will be controlling an automated display in the trunk of my show car.

Go Up