Pin I / O digital sebagai ground

9

Saya ingin pin I / O untuk mengembalikan arus dalam sebuah sirkuit, mirip dengan fungsi ground.

Manakah dari ini akan mencapai apa yang saya butuhkan?

pinMode(pinnumber, OUTPUT)
digitalWrite(pinnumber, LOW)

atau

pinMode(pinnumber, input)
rajat
sumber
pilihan kedua Anda pinMode(pinnumber,input)adalah menempatkan pin di "negara ketiga" dari pin, yang juga disebut "impedansi tinggi". Ini pada dasarnya seperti jika pin tidak terhubung ke sirkuit, seperti ohmmeter.
zmo
"digitWrite"? Bukankah maksud Anda " digitalWrite "?
Peter Mortensen

Jawaban:

9

Cuplikan pertama Anda adalah solusi yang benar.

pinMode(pinnumber,OUTPUT)
digitalWrite(pinnumber,LOW)

Berhati-hatilah, Anda hanya dapat memasukkan hingga 6mA atau 9mA per pin (sesuai bagian dokumentasi ["Input dan Output"], saya tidak pernah mencoba lagi). Jika Anda membutuhkan lebih banyak arus, gunakan transistor ( ini terlihat seperti contoh yang baik, Anda hanya perlu membalikkan pin output ke HIGH).

Ketika pin dikonfigurasikan sebagai input, itu seharusnya impedansi tinggi, bukan apa yang Anda inginkan.

FredP
sumber
Terima kasih, arus juga berasal dari pin IO Arduino. Oleh karena itu, saya tidak berpikir batas 40mA akan menjadi masalah.
rajat
@rajat Melakukan semacam matriks LED? Hati-hati, dengan asumsi Anda memasang (misalnya) LED arus tinggi di antara dua pin (setidaknya tanpa resistor pembatas arus yang sesuai), Anda masih dapat merusak chip. Bahkan tidak menyebutkan kasus di mana Anda membuat korsleting.
FredP
Ini adalah matriks sensor tekanan, memiliki 10 16: 1 multiplexer. Saat ini hanya berasal dari kabel USB Arduino dan tidak ada catu daya eksternal. Oleh karena itu, saya tidak berpikir arus tinggi akan menjadi masalah. Bisakah Anda menjelaskan apa yang bisa menyebabkan korsleting?
rajat
@rajat sesuatu seperti itu akan membuat pendek jika pin "1" dan "2" terhubung: pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PS: jangan coba ini di rumah, jangan membahayakan arduini yang tidak bersalah, jangan menuntut saya, dll ...
FredP
2
Saya sedikit terkejut dengan nomor 6 / 9mA. Ternyata Anda benar untuk Due Arduino, tetapi untuk Arduino berbasis AVR (Uno, dll), yang saya duga masih sebagian besar, jumlahnya lebih seperti 40mA.
microtherion