What do all the things on my UNO do?

I’m new to Arduinos and hardware in general and I was wondering what all the important parts on the Arduino do. Such as: What does the AREF pin do? What do the squigglies (~) mean on some of the pins? On pin 0 and 1, what does TX->1 and RX<-0 mean? What do the six “ICSP” pins do? And lastly, if I power the UNO through the power socket with a 9V battery, can I use the USB slot to communicate with, for example, other Arduinos?

Thanks so much, and sorry for all the questions! :frowning:

You can find lots of information on the Arduino site.


And from reading the ATMega datasheet.
I saw a recent post where someone went to the trouble of making popup boxes to all the bits with descriptions.
I’d post a link if knew how to find it again.

The biggest thing - no, you cannot currently go USB to USB between arduinos, they are not set up to act as USB masters.
You can with the serial lines, Rx to Tx, Tx to Rx - and use NewSoft Serial to add more connections.
Or a Mega with more serial connections.
Or make an RS485 network between devices, or I2C, or SPI, or …

Could you elaborate on the whole Rx to TX/Tx to Rx thing?

What’s there to say?
Arduino1 TX → Rx Arduino2
Arduino2 RX ← Tx Arduino2

Then do Serial.Writes & Serial.Reads back & forth.


ICSP = In Circuit Serial Programming. Another way of programming it if the bootloader isn't there.

You can get multiple Arduinos to talk together using I2C by connecting together the SDA/SCL pins (A4/A5) (plus ground) and using suitable programs.

The aref pin allows you to either read/confirm the reference voltage used by the 10-bit ADC, or to establish your own reference voltage by connecting the pin to an external voltage source.

The ~ squigglies indicate pins that are connected to one of the ATmega's timers, allowing them to be used as PWM (pulse width modulation) outputs. Use the analogWrite(..) command on these pins.