UKHeliBob:
There is no such thing as the "Arduino language". The Arduino IDE uses C++
If you want to depart from the Arduino setup()/loop() code format then you can use plain C or C++ by providing your own main() function which, in the Arduino environment is hidden from the user, but is still there
Thanks a lot for the confirmation. It's nice to know that Arduino uses C++ with only addition of setup() and loop(). Once I start working with Arduino, I will try to figure out how to avoid setup() and loop().
Robin2:
I don't disagree with that, though I think you may find that you are overestimating the convenience of shields. However I see that as the learning or experimenting phase rather than prototyping.
...R
I agree with you that it's rather an experimenting or learning phase. In the context of our discussion, prototyping phase comes after experimenting/learning phase and one can try to do custom circuits and get rid of unnecessary shields.
Also, you are right that I might be overestimating the convenience of shields. The reason being that I have never used Arduino or any shield so far.
Nick_Pyner:
That UC32 looks and walks reasonably like a Uno but, while the price is right, its quack may put you at a disadvantage. I would be suss, as every Uno shield I know of is 5v - for obvious reasons. If there are compatible shields for the UC32, you may find you are being held by the short and curlies with the price. That thing costs more than a Mega.
The following excerpt is from the reference manual of uC32: https://reference.digilentinc.com/reference/microprocessor/uc32/reference-manual
The uC32 is the same form factor as the Arduino Uno board and is compatible with Arduino shields.
[...]
3.3 5V Compatibility
The PIC32 microcontroller operates at 3.3V. The original Arduino boards operate at 5V, as do many Arduino shields. There are two issues to consider when dealing with 5V compatibility for 3.3V logic. The first is protection of 3.3V inputs from damage caused by 5V signals. The second is whether the 3.3V output is high enough to be recognized as a logic high value by a 5V input.
The digital I/O pins on the PIC32 microcontroller are 5V tolerant. The analog capable I/O pins are not 5V tolerant. To provide 5V tolerance on those pins, the uC32 contains clamp diodes and current limiting resistors to protect them from 5V input voltages. The fact that all I/O pins are 5V tolerant means that it is safe to apply 5V logic levels to any pins on the board without risk of damaging the PIC32 microcontroller.
The minimum high-voltage output of the PIC32 microcontroller is rated at 2.4V when sourcing 12mA of current. When driving a high impedance input (typical of CMOS logic) the output high voltage will be close to 3.3V. Some 5V devices will recognize this voltage as a logic high input, and some won’t. Many 5V logic devices will work reliably with 3.3V inputs.
The quoted text above is saying that some shields would works and others won't. I'm not sure to what extent this is true that 5V shields could work with 3.3V logic level of uC32. I believe anyone who has used uC32 or any related development board could confirm this.
Also I find the following quoted text is from an old thread, https://forum.digilentinc.com/topic/1903-uc32-shield/?do=findComment&comment=6454
Aside from these chipKIT shields the uC32 was designed to have the same shield pin out as the Arduino Uno therefore all compatible Arduino Uno shields should also fit on the uC32. The issue with this approach is that there will be no libraries readily available for the uC32 so you will either have to write your own libraries or port them over.
I couldn't understand the part in bold. Could you please help me with it?
Thank you all of you for your help and time!
Helpful link:
https://learn.sparkfun.com/tutorials/logic-levels/all